python - 拆分以逗号分隔的 Pandas 类型的 Object 列

我有一个 pandas df,其中有一列混合了 values 像这样

| ID       | home_page                                       |
| ---------| ------------------------------------------------|
| 1        | facebook.com, facebook.com, meta.com            |
| 2        | amazon.com                                      |
| 3        | twitter.com, dev.twitter.com, twitter.com       |

我想创建一个新列,其中包含来自 home_page 列的唯一 values 。最终输出应该是

| ID       | home_page                                       | unique                    |
| -------- | --------------                                  |---------------------------|
| 1        | facebook.com, facebook.com, meta.com            | facebook.com,meta.com     |
| 2        | amazon.com                                      | amazon.com                |
| 3        | twitter.com, dev.twitter.com, twitter.com       |twitter.com,dev.twitter.com|

我尝试了以下方法:

final["home_page"] = final["home_page"].str.split(',').apply(lambda x : ','.join(set(x)))

但是当我这样做时,我得到

TypeError: float object is not iterable

该列没有 NaN 但以防万一我尝试过

final["home_page"] = final["home_page"].str.split(',').apply(lambda x : ','.join(set(x)))

但是这样做时整个列都返回空

回答1

没错,这是来自浮点类型的 np.nan values 。问题发生在这里:set(np.nan)。以下应该对您有用(并且应该更快)。

df["home_page"].str.replace(' ', '').str.split(',').apply(np.unique)

如果你真的想要一个字符串,你可以在最后抛出以下内容:

.apply(lambda x: ','.join(str(i) for i in x))

相似文章

随机推荐

最新文章