向数据帧添加新行 - 为什么是 .loc[len(df)] 而不是 .iloc[len(df)]?



假设我们得到了一个简单的熊猫数据帧:

df = pd.DataFrame({"A": [1,2,3], "B": [4,5,6]})

我想在此数据帧后附加一个新行。为什么以下方法不起作用?

df.iloc[len(df)]=[9,9]

有趣的是,如果我们改用.loc[],这一切都可以正常工作,即使len(df)是一个整数并且.iloc[]用于基于整数位置的索引,这与.loc[]不同。

您正在使用索引分配,这loc不是iloc从文档中.iloc 将引发索引错误,如果请求的索引器越界

df.loc[len(df)]=[9,9]
df
Out[349]: 
A  B
0  1  4
1  2  5
2  3  6
3  9  9

最新更新