python - 在由字符串序列组成的熊猫行中选择唯一元素
问题描述
我有一个包含几列的数据框。其中之一将一些关键字组合在一起:
Column1 Column2
key1, key2 3
key1, key3, key7 1.2
key2 2.2
... ...
我想要一个包含数据框中所有键的列表(在上面的示例中,key1、key2、key3、key7)。每个行元素都是一个字符串,因此'key1,key2'是一个字符串,但到目前为止我只设法获得唯一的字符串,而不是一个一个的唯一键。我想我必须以某种方式拆分字符串并一一分析键,但是该怎么做呢?
解决方案
Series.str.split
与Series.explode
和一起使用Series.unique
:
uniq = df['Column1'].str.split(', ').explode().unique()
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')
推荐阅读
- bash - 用磁铁的“dn”名称保存 aria2 生成的 .torrent 文件?
- c# - 从 JSON 快速反序列化
- c++ - 缺少'#include“m1.hpp”';'my_type' 必须在使用前定义
- bash - Bash:如何使用局部变量同时捕获错误和回显值?
- javascript - 如何在 Winston 中将错误对象记录到文件而不是控制台?
- python - 使用基于字符串形式名称的文件中的类(Python)
- java - 从Java开始在OSX(AVFoundation)上的ffmpeg屏幕截图问题
- python - 尝试在 Python 中搜索带有 (.*?) 的字符串
- javascript - 来自 bot builder 示例的身份验证 bot 不会显示 Microsoft 网站的弹出窗口
- database - 在MongoDB中同步执行两个函数