我有2个数据帧:
df.assign(ranking_class=(df.ranking // 3).astype(int))
club_name tr_begin year ranking ranking_class
0 ADO Den Haag 1357 2010 6.0 2
1 ADO Den Haag 1480 2011 15.0 5
2 ADO Den Haag 1397 2012 9.0 3
3 ADO Den Haag 1384 2013 9.0 3
4 ADO Den Haag 1451 2014 13.0 4
我想在A中添加一些我没有但在B中有的列和行,而不更改A中的现有数据
因此,A必须是:
A = [ A B C
name1 1 2 3
name2 1 2 3
name3 1 2 3
]
B = [ A B C D
name1 11 12 13 12
name2 12 22 23 23
name3 31 32 33 14
name4 41 42 43 44
]
我应该怎么做?
答案 0 :(得分:2)
使用 combine_first
df1.combine_first(df2).astype(int)
A B C D
name1 1 2 3 12
name2 1 2 3 23
name3 1 2 3 14
name4 41 42 43 44
答案 1 :(得分:0)
您可以使用reindex
后跟fillna
:
index = A.index.union(B.index)
columns = A.columns.union(B.columns)
A.reindex(index=index, columns=columns).fillna(B).astype(int)
A B C D
name1 1 2 3 12
name2 1 2 3 23
name3 1 2 3 14
name4 41 42 43 44