gpt4 book ai didi

python - Pandas 数据框掩码将值写入新列

转载 作者:太空狗 更新时间:2023-10-30 02:00:53 24 4
gpt4 key购买 nike

基于 this solution ,我在 Pandas 数据框上创建了几个掩码以创建一个新列,该列应该从不同的列中填充(基于条件)。

(简化的)代码如下所示:

mask0 = (df['condition'] == 1)
mask1 = (df['condition'] == 0)

df.loc[mask0, 'newColumn'] = df['otherColumn1']
df.loc[mask1, 'newColumn'] = df['otherColumn2']

但是在执行第三行时出现以下错误:

ValueError: cannot reindex from a duplicate axis

如果我只是这样做,它就有效:

df.loc[mask0, 'newColumn'] = 1

我做错了什么?

最佳答案

你必须在两边过滤:

mask0 = (df['condition'] == 1)
mask1 = (df['condition'] == 0)

df.loc[mask0, 'newColumn'] = df.loc[mask0, 'otherColumn1']
df.loc[mask1, 'newColumn'] = df.loc[mask1, 'otherColumn2']

但这里最好使用numpy.select为避免重复代码:

df['newColumn'] = np.select([mask0, mask1], 
[df['otherColumn1'], df['otherColumn2']],
default=np.nan)

关于python - Pandas 数据框掩码将值写入新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57536071/

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