gpt4 book ai didi

python - 使用 pandas 将字符串列连接到新列时出现问题吗?

转载 作者:行者123 更新时间:2023-12-01 02:43:34 26 4
gpt4 key购买 nike

我有以下 pandas 数据框:

colA      ColB 
orange NaN
apple red apples
NaN fruit
... ...
tomato tomato

我有兴趣将 ColAColB 连接到一个新列 (ColC),问题是当我这样做时:

df["ColC"] = df["ColA"].map(str) + df["ColB"]

我得到:

colA      ColB         ColC
orange NaN orangenan
apple red apples applered apples
NaN fruit nanfruit
... ... ...
tomato tomato tomatotomato

如何处理重复的字符串、nans 以及添加以逗号分隔的不同字符串?例如,预期输出应该是:

colA      ColB         ColC
orange NaN orange
apple red apples apple, red apples
NaN fruit fruit
... ... ...
tomato tomato tomato

更新

尝试@MaxU解决方案后:

df["ColC"] = df[["ColA","ColB"].fillna('').astype(str).sum(1)

我仍然遇到以下问题:

apple     red apples   applered apples

由于字符串没有用逗号分隔:

apple     red apples   apple, red apples

知道如何用逗号分隔字符串吗?

最佳答案

试试这个:

df["ColC"] = df["ColA"].fillna('').astype(str) + df["ColB"].fillna('').astype(str)

或者:

df["ColC"] = df[["ColA","ColB"]].fillna('').astype(str).sum(1)

更新:

cols = ['ColA','ColB']

In [94]: df['ColC'] = df[cols].apply(lambda x: ', '.join(x.dropna().unique()), axis=1)

In [95]: df
Out[95]:
ColA ColB ColC
0 orange NaN orange
1 apple red apples apple, red apples
2 NaN fruit fruit
3 tomato tomato tomato

关于python - 使用 pandas 将字符串列连接到新列时出现问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45440612/

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