gpt4 book ai didi

python - 替换 Pandas 数据框中的值(不包括缺失值)

转载 作者:行者123 更新时间:2023-11-28 20:34:25 24 4
gpt4 key购买 nike

我一直在努力让我的代码工作,但我在这里遇到了一些麻烦。如果有人可以帮助我,那就太好了

东风

  Col1              Col2          
2017-01-01 Coffee
2017-01-01 Muffin
2017-01-01 Donut
2017-01-01 Toast
2017-01-01
2017-01-01

我如何更改 Col2 以使每个不是 Coffee 或 Muffin 或 null 的值都变成“其他”?

  Col1              Col2          
2017-01-01 Coffee
2017-01-01 Muffin
2017-01-01 Other
2017-01-01 Other
2017-01-01
2017-01-01

编辑:

df.loc[~df.Col2.isin(['Coffee','Muffin']), 'Col2'] = 'Other'

^这就是我现在所在的位置,但是如何在 isin 中添加空语句

最佳答案

你快到了。如果您使用的是 NaN,则需要使用 isnull 进行额外检查。使用 loc 创建掩码并设置值 -

m = ~(df.Col2.isin(['Coffee', 'Muffin']) | df.Col2.isnull())
df.loc[m, 'Col2'] = 'Other'

df

Col1 Col2
0 2017-01-01 Coffee
1 2017-01-01 Muffin
2 2017-01-01 Other
3 2017-01-01 Other
4 2017-01-01 NaN
5 2017-01-01 NaN

或者,如果它们是空白(空字符串,不是 NaN - 它们不同!),则对第二个条件执行相等比较 -

m = ~(df.Col2.isin(['Coffee', 'Muffin']) | df.Col2.eq(''))

这里有一些更多的可能性 np.where/pd.Series.where/pd.Series.mask -

df.Col2 = np.where(m, 'Other', df.Col2)

或者,

df.Col2 = df.Col2.where(~m, 'Other')

或者,

df.Col2 = df.Col2.mask(m, 'Other')

df

Col1 Col2
0 2017-01-01 Coffee
1 2017-01-01 Muffin
2 2017-01-01 Other
3 2017-01-01 Other
4 2017-01-01 NaN
5 2017-01-01 NaN

关于python - 替换 Pandas 数据框中的值(不包括缺失值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48513445/

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