python-3.x Pandas将列从一个数据框复制到另一个具有不同名称的数据框

tquggr8v  于 2022-12-01  发布在  Python
关注(0)|答案(3)|浏览(132)

我必须将列从一个 Dataframe A复制到另一个 Dataframe BAB中的列名不匹配。
最好的方法是什么?有几个这样的列。我需要为每个列写B["SO"] = A["Sales Order"]等吗?

jhdbpxl9

jhdbpxl91#

我将使用pd.concat

combined_df = pd.concat([df1, df2[['column_a', 'column_b']]], axis=1)

还允许您连接不同大小的日期框、外部连接等。

tgabmvqs

tgabmvqs2#

用途:

df1 = pd.DataFrame({
      'SO':list('abcdef'),
      'RI':[4,5,4,5,5,4],
      'C':[7,8,9,4,2,3],

})

print (df1)
  SO  RI  C
0  a   4  7
1  b   5  8
2  c   4  9
3  d   5  4
4  e   5  2
5  f   4  3

df2 = pd.DataFrame({
         'D':[1,3,5,7,1,0],
         'E':[5,3,6,9,2,4],
         'F':list('aaabbb')
})

print (df2)
   D  E  F
0  1  5  a
1  3  3  a
2  5  6  a
3  7  9  b
4  1  2  b
5  0  4  b

创建用于重命名的字典,选择匹配的列,按dictDataFrame.join重命名为原始的-按索引值匹配的 Dataframe :
第一次

egdjgwm8

egdjgwm83#

做一个缩写字典,试试下面的代码。

例如:

full_form_dict =  {'SO':'Sales Order',
                   'RI':'Retail Invoices',}

A_col = list(A.columns)

B_col = [v for k,v in full_form_dict.items() if k in A_col]
# to loop over A_col
# B_col = [v for col in A_col for k,v in full_form_dict.items() if k == col]

相关问题