📌  相关文章
📜  在 Pandas 中将类似列表的列元素转换为单独的行(1)

📅  最后修改于: 2023-12-03 15:07:45.336000             🧑  作者: Mango

在 Pandas 中将类似列表的列元素转换为单独的行

在使用 Pandas 进行数据处理时,经常会遇到类似如下的数据:

| | 人物 | 作品 | |---|-----------|------------------------------------------------------| | 0 | 东野圭吾 | ['解忧杂货店', '白夜行', '嫌疑人X的献身'] | | 1 | 三毛 | ['撒哈拉的故事', '雨季不再来'] |

其中,'作品'列的元素是一个列表,每个人物对应多个作品。如果我们希望将每个作品单独拆分成一行,以便于后续的分析,我们可以使用 Pandas 中的 explode() 方法。

import pandas as pd

# 创建示例数据
data = {'人物': ['东野圭吾', '三毛'],
        '作品': [['解忧杂货店', '白夜行', '嫌疑人X的献身'], ['撒哈拉的故事', '雨季不再来']]}
df = pd.DataFrame(data)

# 使用 explode() 方法将'作品'列拆分成单独的行
df_exploded = df.explode('作品')

执行上述代码后,我们得到了如下的结果:

| | 人物 | 作品 | |---|-----------|--------------| | 0 | 东野圭吾 | 解忧杂货店 | | 0 | 东野圭吾 | 白夜行 | | 0 | 东野圭吾 | 嫌疑人X的献身 | | 1 | 三毛 | 撒哈拉的故事 | | 1 | 三毛 | 雨季不再来 |

可以看到,'作品'列中的每个元素被拆分成了单独的一行,同时保留了对应的'人物'信息。

使用 explode() 方法,可以方便地将类似列表的元素拆分成单独的行,提高了数据处理的效率。