dataframe 添加行的方法:
1)通过loc函数添加,必须要知道行index,相同的index会覆盖
df1=pd.DataFrame([[1,1],[2,2]], columns=['a', 'b'])
df1.loc[3]={'a':3,'b':3} #字典添加,与列名相同赋值,其他的值忽略
df1.loc[df1.shape[0]+1]=[5,5] #在最后一行添加
2)通过合并两个dataframe表格添加行(相同行index的不会覆盖)
df1=pd.DataFrame([[1,1],[2,2]], columns=['a', 'b'])
df2=pd.DataFrame([[3,3],[4,4]], columns=['a', 'b'])
pd.concat([df1, df2], ignore_index=True) #ignore_index忽略原来的索引,重新建立index,否则可能出现相同的index
3)通过append添加一行(相同index的不会覆盖)
df1= df1.append(dframe2.loc[1], ignore_index=True) #把表格中的一行添加到另一个表格
df1= df1.append(dframe2, ignore_index=True) #把表格中的一行添加到另一个表格
注意:
a).iloc使用全是以0开头的行号和列号,不能直接用其它索引;而.loc使用的实际设置的索引和列名。
b).iloc只能选取数据表里实际有的行和列;而.loc可以选取没有的行和列。
例如:df1.loc[1,'a'] 正确 df1.loc[1,1] 错误
df1.iloc[1,'a'] 错误 df1.iloc[1,1] 正确
运行结果
>>> df1
a b
0 1 1
1 2 2
>>> df2
a b
0 3 3
1 4 4
>>> pd.concat([df1, df2])
a b
0 1 1
1 2 2
0 3 3
1 4 4
>>> df=pd.concat([df1, df2])
>>> df.loc[1]
a b
1 2 2
1 4 4
>>> df=pd.concat([df1, df2], ignore_index=True)
>>> df
a b
0 1 1
1 2 2
2 3 3
3 4 4