我制定了this question关于添加带索引的行的信息,但是我还不清楚在没有索引的情况下这是如何/为什么发生的:
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)
答案 0 :(得分:5)
DataFrame.append
不是就地操作。在文档中,
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)
将其他行添加到该帧的末尾,返回一个新对象。 不在此框架中的列将作为新列添加。
您需要将结果分配回去。
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
答案 1 :(得分:4)
语句data.append(sub_data)不能单独工作。
但是语句data = data.append(sub_data)将起作用
将其分配回给我解决了这个问题。好提示,其他地方都没有。