根据与另一个数据框的重合情况更改 Pandas 数据框列中的值

问题描述 投票:0回答:0

假设我在 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']

但它不起作用。任何帮助将不胜感激,谢谢!

python pandas dataframe multiple-columns
© www.soinside.com 2019 - 2024. All rights reserved.