Python 在Pandas中,如何将2个数据帧与唯一列组合?
我正在处理一些数据帧。一个是从一个新的csv中提取,添加了列,并继续日期。但是,大多数列是相同的。我想将它们结合起来,得到一个包含所有日期和所有列的数据帧 CSV与此类似,有一些相同的列和一些不同的列,但都有唯一的日期:Python 在Pandas中,如何将2个数据帧与唯一列组合?,python,pandas,dataframe,Python,Pandas,Dataframe,我正在处理一些数据帧。一个是从一个新的csv中提取,添加了列,并继续日期。但是,大多数列是相同的。我想将它们结合起来,得到一个包含所有日期和所有列的数据帧 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
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
结果数据框应该是这样的,一列日期和所有列都存在(我可以稍后将NaN转换为fillna,我只需要知道如何组合):
当我将实际的2个数据帧与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
在我的实际数据帧上,我得到断言错误:管理器项的数量必须等于块项的并集#管理器项:65,#tot_项:66,这必须发生在代码中的其他地方,或者您的数据与示例数据的外观不同:-)。它与示例数据不同(其敏感)。但结构是一样的。一些相同的列、一些新列和持续日期。具体请参见第二点。请提供一个,以及整个错误输出。
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