gpt4 book ai didi

python - 使用数据框 Pandas 的多个 if 语句的替代方案

转载 作者:行者123 更新时间:2023-12-04 14:03:21 25 4
gpt4 key购买 nike

使用数据框的多个 if 语句的替代方案是什么?通常我使用一种简单的方法,如下面的示例所示,但是,如果需要更多语句,那就不太好了。

在这个特定的示例中,我将根据 A 值创建一列 A10。可能这可以用其他更短的方式完成:

df.loc[df['A'] == 1, 'A10'] = df['A'] +  df['B'] + 100 
df.loc[df['A'] == 2, 'A10'] = df['A'] + df['B'] + 200
df.loc[df['A'] == 3, 'A10'] = df['A'] + df['B'] + 300
df.loc[df['A'] == 5, 'A10'] = df['A'] + df['B'] + 400
df.loc[df['A'] == 9, 'A10'] = df['A'] + df['B'] + 500

最佳答案

您只能对过滤后的行使用字典映射:

d = {1:100,2:200,3:300,5:400,9:500}
m = df['A'].isin(d)

df.loc[m, 'A10'] = df['A'] + df['B'] + df.loc[m, 'A'].map(d)

为了映射列中的所有值,如果有很多不匹配的值,应该会更慢:

d = {1:100,2:200,3:300,5:400,9:500}
m = df['A'].isin(d)
df.loc[m, 'A10'] = df['A'] + df['B'] + df['A'].map(d)

关于python - 使用数据框 Pandas 的多个 if 语句的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69299660/

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