gpt4 book ai didi

python - 如果其他单元格包含 'something',如何在 2 个单元格中设置值

转载 作者:行者123 更新时间:2023-12-01 09:18:32 25 4
gpt4 key购买 nike

我有一些 pandas 数据框:

a,b,c
AAA,,
DDD,,
KKK,,
AAA,,

我想在“A”列中搜索,如果“A”列中的字符串包含单词“AAA”,我需要在“B”列中设置值“BBB”,在“C”列中设置值“CCC”。
所以,我想得到如下结果:

a,b,c
AAA,BBB,CCC
DDD,,
KKK,,
AAA,BBB,CCC

我用numpy编写了代码:

df['b'] = pd.np.where(df.a.str.contains("AAA"), "BBB", '')

如何扩展它以使用“b”和“c”列?

最佳答案

您可以使用双np.where:

mask = df.a.str.contains("AAA")
df['b'] = pd.np.where(mask, "BBB", '')
df['c'] = pd.np.where(mask, "CCC", '')

或者assign :

mask = df.a.str.contains("AAA")
df = df.assign(b=pd.np.where(mask, "BBB", ''), c=pd.np.where(mask, "CCC", ''))

如果需要使用一个 np.where 创建多列,则需要创建 Nx1 掩码:

mask = df.a.str.contains("AAA")[:, None]
df[['b','c']] = np.where(mask, ['BBB','CCC'], ['',''])
print (df)
a b c
0 AAA BBB CCC
1 DDD
2 KKK
3 AAA BBB CCC

关于python - 如果其他单元格包含 'something',如何在 2 个单元格中设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51011188/

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