gpt4 book ai didi

python - 根据数据框中的信息在 Pandas 数据框中创建变量

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:22 24 4
gpt4 key购买 nike

我有一个按以下方式组织的数据框

    var1   var2   var3   var4
0 A 23 B 7
1 B 13 C 4
2 C 12 A 11
3 A 5 C 15

我现在想创建一个新变量(列)var5,如果 var1 == A 则它取 var2 的值,如果 var3 == A 则取 var4 的值。为简单起见,var1 和 var3 永远不能同时具有值 A。如果 var1 或 var3 都不采用值 A,那么我需要 NaN。也就是说,此示例中的结果将是:

    var1   var2   var3   var4  var5
0 A 23 B 7 23
1 B 13 C 4 NaN
2 C 12 A 11 11
3 A 5 C 15 5

如何实现?

最佳答案

选项 1
听起来你可以为此使用 np.where -

i = df.var1 == 'A'
j = df.var3 == 'A'
df['var5'] = np.where(i, df.var2, np.where(j, df.var4, np.NaN))
df

var1 var2 var3 var4 var5
0 A 23 B 7 23.0
1 B 13 C 4 NaN
2 C 12 A 11 11.0
3 A 5 C 15 5.0

选项 2
另一种选择是 np.select -

df['var5'] = np.select([i, j], [df.var2, df.var4], default=np.nan)
df

var1 var2 var3 var4 var5
0 A 23 B 7 23.0
1 B 13 C 4 NaN
2 C 12 A 11 11.0
3 A 5 C 15 5.0

请注意,ij选项 1 的代码 list 中定义的相同变量。


选项 3
pd.Series.mask/哪里

df.var2.mask(~i, df.var4.mask(~j, np.nan))

0 23.0
1 NaN
2 11.0
3 5.0
Name: var2, dtype: float64

关于python - 根据数据框中的信息在 Pandas 数据框中创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48027171/

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