【发布时间】:2020-01-20 20:25:48
【问题描述】:
我有两个数据框,df1 和 df2。每个数据帧的唯一标识符是“ID”和“Prop_Number”。我需要将 df1 中的 Num1、2 和 3 列复制到 df2、1_Num 中的相应列中... 但我不确定如何合并超过列。我想将 df2 保留为 df2,而不是创建一个新的 df(因为我的真实数据在 df2 中有更多列)将保持原样。
cols1 = ['ID', 'Num1', 'Num2', 'Num3']
data1 = [['33', '.853', '9834', '234'],
['87', '.372', '2345', '843'],
['15', '1.234','742', '821'],
['92', '1.957', '1234', '123'],
['13', '.943', '8427', '493'],
['67', '.852', '3421', '439']
]
df1 = pd.DataFrame(data=data1, columns=cols1)
cols2 = ['Prop_Number', '1_Num', '2_Num', '3_Num']
data2 = [['87', '', '', ''],
['33', '', '', ''],
['67', '','', ''],
['13', '', '', ''],
['92', '', '', ''],
['15', '', '', '']
]
df2 = pd.DataFrame(data=data2, columns=cols2)
我试过的是
df2['1_Num'] = np.where(df1['ID'] == df2['Prop_Number'], df1['Num1'],np.nan)
【问题讨论】:
-
两个dfs中的列名是相同还是不同?
-
列名不同,但您可以关联它们 - df1['Num1'] = df2['1_Num']...
标签: python pandas dataframe merge