gpt4 book ai didi

python - 在 pandas 数据框系列上应用基于条件的函数

转载 作者:行者123 更新时间:2023-12-01 00:11:24 25 4
gpt4 key购买 nike

我是 Pandas 新手

我的数据框:

df

A            B
first True
second False
third False
fourth True
fifth False

所需输出

A            B          C
first True en
second False
third False
fourth True en
fifth False

仅当 B 列为 True 时,我才尝试将函数应用于列 C

我用的东西

if (df['B'] == True)):
df['C'] = df['A'].apply(
lambda x: TextBlob(x).detect_language())

但是我收到一个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我尝试过的

df['B'].bool()
df['B'] is True
df['B'] == 'True'

但错误仍然存​​在,不知道如何形成一个声明“仅当 B 列为 True 时”。

感谢您的建议。

最佳答案

如果希望在 apply 之前没有匹配行的缺失值过滤行,以便仅处理具有 True 的行:

df['C'] = df.loc[df['B'], 'A'].apply(lambda x: TextBlob(x).detect_language())
print (df)
A B C
0 first True en
1 second False NaN
2 third False NaN
3 fourth True en
4 fifth False NaN

或者,如果不匹配的值需要空字符串,但应用处理所有列:

df['C'] = np.where(df['B'], df['A'].apply(lambda x: TextBlob(x).detect_language()), '')
print (df)
A B C
0 first True en
1 second False
2 third False
3 fourth True en
4 fifth False

关于python - 在 pandas 数据框系列上应用基于条件的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610513/

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