簡體   English   中英

Pandas 將一個數據框中的列復制到另一個名稱不同的數據框中

[英]Pandas Copy columns from one data frame to another with different name

我必須將列從一個 DataFrame A復制到另一個 DataFrame B AB中的列名不匹配。

最好的方法是什么? 像這樣的欄目有好幾列。 我是否需要為每一列寫B["SO"] = A["Sales Order"]等?

我會使用pd.concat

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

還使您能夠連接不同大小的日期框、外部連接等。

采用:

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

為重命名創建字典,匹配 select 列,通過dict重命名和DataFrame.join到原始 - 按索引值匹配的數據幀:

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


df11 = df1[d.keys()].rename(columns=d)
print (df11)
  Sales Order  Retail Invoices
0           a                4
1           b                5
2           c                4
3           d                5
4           e                5
5           f                4

df = df2.join(df11)
print (df)
   D  E  F Sales Order  Retail Invoices
0  1  5  a           a                4
1  3  3  a           b                5
2  5  6  a           c                4
3  7  9  b           d                5
4  1  2  b           e                5
5  0  4  b           f                4

制作縮寫詞詞典。 並嘗試此代碼。

前任:

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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM