📅  最后修改于: 2023-12-03 15:07:45.336000             🧑  作者: Mango
在使用 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()
方法,可以方便地将类似列表的元素拆分成单独的行,提高了数据处理的效率。