首页 > 解决方案 > 向数据框添加新行 - 为什么使用 .loc[len(df)] 而不是 .iloc[len(df)]?

问题描述

假设我们得到了一个简单的 pandas 数据框:

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

我想在这个数据框中添加一个新行。为什么以下方法不起作用?

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

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

标签: pythonpandasdataframeindexing

解决方案


您正在使用索引分配,这loc不是iloc 来自文档.iloc 如果请求的索引器超出范围,将引发 IndexError

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

推荐阅读