假设我在 Python 的 Pandas 中有两个数据框,看起来像这样:
df_test_1 = pd.DataFrame(data=None, columns=['file', 'number'])
df_test_1.file = ['file_1', 'file_2', 'file_3', 'file_23', 'file_24', 'file_25']
df_test_1.number = [1, 2, 3, 23, 24, 25]
df_test_2 = pd.DataFrame(data=None, columns=['file', 'new_file', 'number'])
df_test_2.file = ['file_4', 'file_5', 'file_6', 'file_41', 'file_42', 'file_43']
df_test_2.new_file = ['file_2', 'file_3', 'file_1', '', '', '']
df_test_2.number = [4, 5, 6, 41, 42, 43]
我想要的是然后将'df_test_2'中的'number'列更改为等于'df_test_1'中的'number'对于'df_test_2'中的'new_file'中看到的相应'df_test_1'中的'number'(如果存在)。简而言之,如果 df_test_2.file = 'file_4' 和 df_test_2.new_file = 'file_2',则根据 df_test_1.file = 'file_2' 行中的 'number',新列可以显示 df_test_2.new_number = 2。最后一列应该是这样的:
[2, 3, 1, , , ]
我的想法是这样的:
df_test_2['new_number'] = df_test_1.loc[df_test_1.file == df_test_2.new_file, 'number']
但它不起作用。任何帮助将不胜感激,谢谢!