你可以试试这个:
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 = df2.set_index('Prop_Number')
df2.update(df1.rename(columns=dict(zip(df1.columns[1:],
['1_Num','2_Num','3_Num'])))
.set_index('ID'))
df2 = df2.reset_index()
print(df2)
Output:
Prop_Number 1_Num 2_Num 3_Num
0 87 .372 2345 843
1 33 .853 9834 234
2 67 .852 3421 439
3 13 .943 8427 493
4 92 1.957 1234 123
5 15 1.234 742 821
Details: rename
df1 列与 df2 列匹配并使用set_index
, with update
修改 df2.