我有两个数据帧
df1
created_at centre product_id qty sale_value many_more_columns
2021-05-24 london aa 10 5.00 ...
2021-05-24 paris bb 5 5.00 ...
2021-05-24 paris aa 7 5.00 ...
2021-05-24 rome cc 6 5.00 ...
df2
day_id prod_id branch_name order_id sales many_more_columns
2018-01-30 ab paris 4 976.00 ...
2018-02-06 ds london 1 5.00 ...
2018-07-20 gf oslo 1 49.00 ...
2018-09-30 aa rome 2 3.00 ...
2019-01-14 bb rome 3 25.00 ...
我正在尝试联系这些数据帧,以便这些列位于的下方
- created_at-day_id
- center-branch_name
- product_id-prod_id
- 数量-订单id
- sale_value-销售额
其余列不同,我想用np.nan
值填充这些列。
所以结果看起来是这样的:
created_at centre product_id qty sale_value many_more_columns
2021-05-24 london aa 10 5.00 ...
2021-05-24 paris bb 5 5.00 ...
2021-05-24 paris aa 7 5.00 ...
2021-05-24 rome cc 6 5.00 ...
2018-01-30 paris ab 4 976.00 np.nan
2018-02-06 london ds 1 5.00 np.nan
2018-07-20 oslo gf 1 49.00 np.nan
2018-09-30 rome aa 2 3.00 np.nan
2019-01-14 rome bb 3 25.00 np.nan
在使用pd.concat([df1, df2])
之后,使df2
向右移动,这是预期的。有没有一种方法可以告诉熊猫,在其他数据帧中,一列和另一列是一样的?我可以考虑重命名df2
列以匹配df1
,但我想知道是否有办法用pd.concat
实现这一点。
try:
d={'day_id': 'created_at',
'branch_name': 'centre',
'prod_id': 'product_id',
'order_id': 'qty',
'sales': 'sale_value'}
最后:
out=pd.concat([df1,df2.rename(columns=d)])
或
out=df1.append(df2.rename(columns=d))