df.append() 没有附加到 DataFrame

我制定了这个关于使用索引添加行的问题,但我还不清楚在没有索引时如何/为什么会发生这种情况:


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)


大话西游666
浏览 388回答 2
2回答

呼如林

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         D0  value aa  value bb  value cc  value dd1  value aa  value bb  value cc  value dd

扬帆大鱼

语句 data.append(sub_data) 本身不起作用。但是语句 data=data.append(sub_data) 会起作用重新分配它为我解决了这个问题。其他地方没有的好提示。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python