gpt4 book ai didi

python - Pandas ,将字符串列与条件结合起来,但得到的系列的真值不明确

转载 作者:行者123 更新时间:2023-11-28 22:39:53 25 4
gpt4 key购买 nike

我想加入带有条件的 Pandas DataFrame 列——仅当结尾不为空时才用逗号分隔列:

import numpy as np
import pandas as pd

df = pd.DataFrame({'score':np.random.randn(3),
'person1':[x*3 for x in list('ABC')],
'person2':[x*3 for x in list('DEF')]})
df

df['person2'][1]=""
#print(df['person1']+("" if df['person2']=="" else ", "+df['person2']) )
#print(df['person1']+("" if not df['person2'] else ", "+df['person2']) )
#print(df['person1']+("" if not df['person2'].values else ", "+df['person2']) )
# ValueError: The truth value of a Series is ambiguous.

但是,我从搜索结果中得到的所有建议都不起作用。我上面所有的尝试都以错误告终:

ValueError: The truth value of a Series is ambiguous.

PS,考虑到我要加入多个列,其中一些可能是空白的,而且我不想以多个逗号组成的字符串结尾,是否可以编写一个函数以便我调用它加入多列时起作用?

请帮忙。谢谢

最佳答案

你可以像这样对每一行应用一个函数:

df.apply(lambda row: row.person1 + (',' + row.person2 if row.person2 else ''),
axis=1)

关于python - Pandas ,将字符串列与条件结合起来,但得到的系列的真值不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34295907/

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