为了账号安全,请及时绑定邮箱和手机立即绑定

df.append() 没有附加到 DataFrame

df.append() 没有附加到 DataFrame

大话西游666 2021-09-25 16:58:13
我制定了这个关于使用索引添加行的问题,但我还不清楚在没有索引时如何/为什么会发生这种情况: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  DNaN  4  5  6  7我猜LOC和iLOC都不能用来追加没有索引名的行(即Loc加索引名NaN,索引号高于数据库行数时不能使用iLoc)
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

DataFrame.append不是就地操作。从文档中,


DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)

将 other 的行附加到此帧的末尾,返回一个新对象。不在此框架中的列将作为新列添加。


您需要将结果分配回来。


df8 = df8.append([s] * 2, ignore_index=True)

df8

          A         B         C         D

0  value aa  value bb  value cc  value dd

1  value aa  value bb  value cc  value dd


查看完整回答
反对 回复 2021-09-25
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

语句 data.append(sub_data) 本身不起作用。

但是语句 data=data.append(sub_data) 会起作用

重新分配它为我解决了这个问题。其他地方没有的好提示。


查看完整回答
反对 回复 2021-09-25
  • 2 回答
  • 0 关注
  • 373 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信