python - 从一列中拆分艺术家姓名
问题描述
我正在从公告牌 100 列表中提取数据,并被困在如何拆分艺术家姓名上。这是一个 csv 文件,但我在导出之前将数据保存在 pandas 数据框中。我想使用 python/pandas 进行拆分。我已经包含了下面列的图片。艺术家姓名都在同一列中,带有分隔符(红色)我想拆分但它非常复杂。最常见的分隔符是“&”、“Featured”、“X”,所以基本上我需要帮助将所有这些名称分成不同的列。
我在想我可以使用嵌套的 for 循环,这样我就可以根据这些分隔符的组合进行拆分。我的想法是根据“(符号)”、“X”、“x”和“Featured”的模式进行拆分,但不确定这是否可能。有没有更简单的方法可以在不丢失数据的情况下做到这一点?感谢所有帮助。
解决方案
考虑一个示例数据框df
df = pd.DataFrame({'singers': ['A & B', 'C Featuring D', 'E X F', 'G % H']})
df
singers
0 A & B
1 C Featuring D
2 E X F
3 G % H
现在,由您决定选择哪个分隔符来分割名称。可能只是X
或只是Featuring
或&
可能全部。使用str.split
来实现这一点,如图所示 -
df.singers.str.split('&|X|Featuring|%', expand=True)
0 1
0 A B
1 C D
2 E F
3 G H
您甚至可以在 split 方法中添加任何其他符号。
推荐阅读
- azure-devops - 如何在 Azure DevOps 上的发布管道中添加插槽交换任务之前的批准
- java - 过滤给定集合元素的增量条件
- ionic4 - 如何动态转到上一页(离子4)?
- javascript - 为什么为破坏变量未定义
- docker - 进程一直挂着
- typescript - 如何选择对象的字符串成员
- c - 基于相同的对齐和/或表示,一个对象的大小是否等于另一个对象的大小?
- java - Java 马尔可夫链
- r - R-如何组合具有相同列名但顺序不同的两个数据框
- flutter - 输入时光标默认为文本字段的开头,使用 TextEditingController + onChanged - Flutter