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

时间:2018-05-30 14:21:37

标签: python pandas dataframe indexing

假设我们给了一个简单的pandas数据帧:

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

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

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

有趣的是,如果我们使用.loc[]代替,即使len(df)是整数而.iloc[]用于基于整数位置的索引,这一切都能正常工作,这与.loc[]不同

1 个答案:

答案 0 :(得分:3)

您正在使用索引分配,loc而非iloc如果请求的索引器超出范围,则会从doc .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