在Pandas中,我将如何将2个数据帧与唯一列相结合



我正在处理一些DataFrames。一种是从较新的csv中提取,添加了列和连续的日期。但是,大多数列都是相同的。我想把它们组合起来,得到一个具有所有日期和所有列的DataFrame?

csv是这样的,有一些相同的列和一些不同的列,但都有唯一的日期:

df1:
day     alice  bob
8/11    0      0
8/25    2      5
9/1     2      0
df2:
day     alice  charlie
9/12    1      1
9/25    2      3
9/1     2      1

得到的dataFrame应该是这样的,有一列日期和所有列(我可以稍后将NaN转换为fillna,我只需要知道如何组合(:


df3: 
day     alice  bob  charlie
8/11    0      0      0 
8/25    2      5      0 
9/1     2      0      0
9/12    1      0      1
9/25    2      0      3
9/1     2      0      1

当我将实际的2个DataFrames与pd.concat组合时,我会得到以下错误:

AssertionError: Number of manager items must equal union of block items
# manager items: 65, # tot_items: 66

不确定问题可能是什么。在此期间,谢谢,你太棒了:(

您可以使用concat:

pd.concat((df1,df2), sort=False).fillna(0)
day  alice  bob  charlie
0  8/11      0  0.0      0.0
1  8/25      2  5.0      0.0
2   9/1      2  0.0      0.0
0  9/12      1  0.0      1.0
1  9/25      2  0.0      3.0
2   9/1      2  0.0      1.0

最新更新