gpt4 book ai didi

python - Pandas - 选择列表中的无效条目

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:20 26 4
gpt4 key购买 nike

我正在尝试过滤列,如果该列包含特定字符串,我会将特定值附加到新列中。示例:

conditions = [df['columnA'].str.contains('valueA')]
choices = ['valueB']

df['columnB'] = np.select(conditions, choices, default = 'default')

但是当我运行它时,出现以下错误:

ValueError: invalid entry in choicelist: should be boolean ndarray

我做错了什么?

最佳答案

您需要在 str.contains 中使用参数 na=False因为 NaNboolean mask 中被评论为 unutbu :

conditions = [df['columnA'].str.contains('valueA', na=False)]

示例:

df = pd.DataFrame({'columnA':['valueA  ff','ss valueA','valueA 4','w','e',np.nan]})
print (df)
columnA
0 valueA ff
1 ss valueA
2 valueA 4
3 w
4 e
5 NaN

print (df['columnA'].str.contains('valueA'))
0 True
1 True
2 True
3 False
4 False
5 NaN
Name: columnA, dtype: object

print (df['columnA'].str.contains('valueA', na=False))
0 True
1 True
2 True
3 False
4 False
5 False
Name: columnA, dtype: bool

一起:

conditions = [df['columnA'].str.contains('valueA', na=False)]
choices = ['valueB']

df['columnB'] = np.select(conditions, choices, default = 'default')
print (df)
columnA columnB
0 valueA ff valueB
1 ss valueA valueB
2 valueA 4 valueB
3 w default
4 e default
5 NaN default

关于python - Pandas - 选择列表中的无效条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47264672/

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