df.append() 未附加到 DataFrame
- 2025-03-04 08:28:00
- admin 原创
- 5
问题描述:
我提出了关于添加带有索引的行的问题,但目前我还不清楚在没有索引的情况下如何/为什么会发生这种情况:
columnsList=['A','B','C','D']
df8=pd.DataFrame(columns=columnsList)
L=['value aa','value bb','value cc','value dd']
s = pd.Series(dict(zip(df8.columns, L)))
df8.append(s,ignore_index=True)
df8.append(s,ignore_index=True)
我期望这里有一个 2X4 数据框。然而并没有添加任何值,也没有发生错误。
print(df8.shape)
#>>> (0,4)
为什么该系列没有被添加,并且没有给出任何错误?
如果我尝试添加一行 LOC,则会添加一个索引,
df8.loc[df8.index.max() + 1, :] = [4, 5, 6,7]
print(df8)
结果:
A B C D
NaN 4 5 6 7
我猜想 LOC 和 iLOC 都不能用于附加没有索引名称的行(即 Loc 添加索引名称 NaN,并且当索引号高于数据库的行数时不能使用 iLoc)
解决方案 1:
pandas >= 1.4
DataFrame.append
已被弃用,请pd.concat
改用。
请注意,在您的示例中,您正在连接两个系列,因此请沿其连接axis=1
并转置。
df = pd.concat([s, s], axis=1).T
df
A B C D
0 value aa value bb value cc value dd
1 value aa value bb value cc value dd
旧版本
DataFrame.append
不是就地操作。根据文档,
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)
将其他行附加到此框架的末尾,返回一个新对象。此框架中不存在的列将添加为新列。
您需要将结果分配回去。
df = df8.append([s] * 2, ignore_index=True)
df
A B C D
0 value aa value bb value cc value dd
1 value aa value bb value cc value dd
解决方案 2:
此声明本身data.append(sub_data)
不起作用。
但声明data=data.append(sub_data)
将会起作用
重新分配后问题就解决了。这是其他地方没有的好建议。
相关推荐
热门文章
项目管理软件有哪些?
- 2025年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
热门标签
云禅道AD