gpt4 book ai didi

python pandas 列以另外两个列值为条件

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:37 25 4
gpt4 key购买 nike

如果一个或另一列有值,python pandas 中有没有一种方法可以应用条件?

对于一列,我知道我可以使用以下代码,如果列标题包含单词“测试”则应用测试标志。

df['Test_Flag'] = np.where(df['Title'].str.contains("test|Test"), 'Y', '')

但是如果我想说列标题或列副标题是否包含“测试”一词,请添加测试标志,我该怎么做?

这显然行不通

df['Test_Flag'] = np.where(df['Title'|'Subtitle'].str.contains("test|Test"), 'Y', '')

最佳答案

如果有很多列,那么更简单的方法是创建子集 df[['Title', 'Subtitle']]apply contains ,因为仅适用于 Series 并通过 any 检查每行至少一个 True :

mask = df[['Title', 'Subtitle']].apply(lambda x: x.str.contains("test|Test")).any(axis=1)
df['Test_Flag'] = np.where(mask,'Y', '')

示例:

df = pd.DataFrame({'Title':['test','Test','e', 'a'], 'Subtitle':['b','a','Test', 'a']})
mask = df[['Title', 'Subtitle']].apply(lambda x: x.str.contains("test|Test")).any(axis=1)
df['Test_Flag'] = np.where(mask,'Y', '')
print (df)
Subtitle Title Test_Flag
0 b test Y
1 a Test Y
2 Test e Y
3 a a

关于python pandas 列以另外两个列值为条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43055206/

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