gpt4 book ai didi

python - 如何跨多个 DataFrame 应用 if 语句?

转载 作者:行者123 更新时间:2023-12-01 06:58:03 25 4
gpt4 key购买 nike

我有两个形状不同的数据框,我想将条件 If 语句应用于 df1 并从 df2 输入值。 df1 将有重复的行,但我需要填充它们,这意味着将 -9 值替换为特定列中 df2 的值

df1:

Code 1    Name
2 Sam
5 James
7 Mark
6 Steven
-9 Michael
-9 Sarah
-9 Sam
5 James
-9 Mark
6 Steven
7 Michael
-9 Sarah
-9 Chris

df2:

Code 1    Name
20 Sam
30 James
40 Mark
50 Steven
70 Michael
45 Sarah

df1 预期输出:

Code 1    Name
2 Sam
5 James
7 Mark
6 Steven
70 Michael
45 Sarah
20 Sam
5 James
40 Mark
6 Steven
7 Michael
45 Sarah
-9 Chris

最佳答案

使用Series.map对于新系列并按条件仅替换匹配的行,最后对于不匹配的行将缺失值替换为 -9:

m = df1['Code 1'] == -9
df1.loc[m, 'Code 1'] = df1.loc[m, 'Name'].map(df2.set_index('Name')['Code 1'])
df1['Code 1'] = df1['Code 1'].fillna(-9).astype(int)
print (df1)
Code 1 Name
0 2 Sam
1 5 James
2 7 Mark
3 6 Steven
4 70 Michael
5 45 Sarah
6 20 Sam
7 5 James
8 40 Mark
9 6 Steven
10 7 Michael
11 45 Sarah
12 -9 Chris

关于python - 如何跨多个 DataFrame 应用 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58724737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com