gpt4 book ai didi

python - 需要一个条件语句来填充基于字符串的列

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:13 26 4
gpt4 key购买 nike

如果另一列包含特定字符串,我需要根据一列中的单元格进行填充。

我需要根据 C 中的内容填写 B 列。就像如果 C 包含 'hello;',则用 'greet' 填充 B 中的相应单元格。那么如果C中包含'bye;',则将'farewell'填充到B中的相应单元格中。

df1
A B C D
0 w hello; Jon q
1 x bye; Jon r
2 y hello; Jack s
3 z bye; Jack t
df1['B'] = np.where(df1['C'].str.contains('hello;'), 'greet', '')
df1['B'] = np.where(df1['C'].str.contains('bye;'), 'farewell', '')

这行得通;但是,下一行代码会覆盖第一行中的“问候语”。所以我不确定如何组合条件,以免它们相互覆盖。我想要的最终结果是

df1
A B C D
0 w greet hello; Jon q
1 x farewell bye; Jon r
2 y greet hello; Jack s
3 z farewell bye; Jack t

最佳答案

如果您只打算处理二元选择并且所有值都存在于列中,按照示例,那么这应该没问题:

 df1['B'] = np.where(df1['C'].str.contains('bye;'), 'farewell', 'greet')

来自numpy docs :

numpy.where(condition[, x, y])

Return elements chosen from x or y depending on condition.

如果条件满足,返回x,否则填充y

但是,np.select docs如果您有多个条件,将是您想要的:

conditions = [
df['C'].str.contains('hello;'),
df['C'].str.contains('bye;')
]

np.select(conditions, ['greet', 'farewell'])

array(['greet', 'farewell', 'greet', 'farewell'], dtype='<U11')

关于python - 需要一个条件语句来填充基于字符串的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57397601/

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