首页 > 解决方案 > 在由字符串序列组成的熊猫行中选择唯一元素

问题描述

我有一个包含几列的数据框。其中之一将一些关键字组合在一起:

Column1                 Column2
key1, key2                    3
key1, key3, key7             1.2
key2                         2.2
...                          ...

我想要一个包含数据框中所有键的列表(在上面的示例中,key1、key2、key3、key7)。每个行元素都是一个字符串,因此'key1,key2'是一个字符串,但到目前为止我只设法获得唯一的字符串,而不是一个一个的唯一键。我想我必须以某种方式拆分字符串并一一分析键,但是该怎么做呢?

标签: pythonpandas

解决方案


Series.str.splitSeries.explode和一起使用Series.unique

uniq = df['Column1'].str.split(', ').explode().unique()

或与Series.drop_duplicates

uniq = df['Column1'].str.split(', ').explode().drop_duplicates()

或设置理解split

uniq = set(y for x in df['Column1'] for y in x.split(', '))

如果需要分析所有数据:

df1 = df.assign(Column1 = df['Column1'].str.split(', ')).explode('Column1')

推荐阅读