首页 > 解决方案 > 从一列中拆分艺术家姓名

问题描述

我正在从公告牌 100 列表中提取数据,并被困在如何拆分艺术家姓名上。这是一个 csv 文件,但我在导出之前将数据保存在 pandas 数据框中。我想使用 python/pandas 进行拆分。我已经包含了下面列的图片。艺术家姓名都在同一列中,带有分隔符(红色)我想拆分但它非常复杂。最常见的分隔符是“&”、“Featured”、“X”,所以基本上我需要帮助将所有这些名称分成不同的列。

我在想我可以使用嵌套的 for 循环,这样我就可以根据这些分隔符的组合进行拆分。我的想法是根据“(符号)”、“X”、“x”和“Featured”的模式进行拆分,但不确定这是否可能。有没有更简单的方法可以在不丢失数据的情况下做到这一点?感谢所有帮助。

标签: pythonpandassplit

解决方案


考虑一个示例数据框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 方法中添加任何其他符号。


推荐阅读