附加两个具有相同列、不同ord的数据帧

2024-10-05 14:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个熊猫数据框。

noclickDF = DataFrame([[0,123,321],[0,1543,432]], columns=['click', 'id','location'])
clickDF = DataFrame([[1,123,421],[1,1543,436]], columns=['click', 'location','id'])

我只想加入,这样最终的DF看起来像:

click  |  id   |   location
0         123        321
0         1543       432
1         421        123
1         436       1543

如您所见,两个原始DF的列名是相同的,但顺序不同。列中也没有联接。


Tags: columns数据iddataframedf顺序locationclick
3条回答

对于未来的用户(有时>;熊猫0.23.0):

您可能还需要添加sort=True以在非连接轴尚未对齐时对其进行排序(即保留OP所需的连接行为)。我使用了上面提供的代码,得到了一个警告,请参见Python Pandas User Warning。下面的代码起作用,不会发出警告。

In [36]: pd.concat([noclickDF, clickDF], ignore_index=True, sort=True)
Out[36]: 
   click    id  location
0      0   123       321
1      0  1543       432
2      1   421       123
3      1   436      1543

你可以使用append

 df = noclickDF.append(clickDF)
 print df 

    click    id  location
 0      0   123       321  
 1      0  1543       432
 0      1   421       123
 1      1   436      1543

如果你需要,你可以通过

df.reset_index(drop=True)
print df
   click    id  location
0      0   123       321
1      0  1543       432
2      1   421       123
3      1   436      1543

您还可以使用pd.concat

In [36]: pd.concat([noclickDF, clickDF], ignore_index=True)
Out[36]: 
   click    id  location
0      0   123       321
1      0  1543       432
2      1   421       123
3      1   436      1543

在引擎盖下,DataFrame.append调用pd.concatDataFrame.append有用于处理各种类型输入的代码,例如序列、元组、列表和dict。如果给它传递一个数据帧,它会直接传递到pd.concat,因此使用pd.concat更直接一些。

相关问题 更多 >