使用 Pandas 从 csv 文件中分解列

Explode column from csv file using Pandas

我有许多 csv 文件,在第一列中有行的标识符,在第二列中有每个 id 的计数。我需要将第二列扩展到嵌套观察的标识符中的行。但是,df.explode() 似乎不适用于原始数据。

示例数据:test_data.csv

df = pd.read_csv('test_data.csv')
df

df.explode('count')

在这种情况下,df.explode 似乎没有做任何事情。我错过了什么?谢谢

list 是一个 python 对象,此类信息不存储在 csv 中。因此,当您读取文件时,它会作为字符串导入 '[this, string, is, not, a, list]'.

您可以使用 converters 读取 csv 以确保它已转换为 python 对象。

import ast
import pandas as pd

df = pd.read_csv('test_data.csv', converters={'count': ast.literal_eval})

df.explode('count')
#   id count
#0   A     5
#0   A     3
#0   A     0
#0   A     5
#0   A     6
#.. ..   ...
#3   D    11
#3   D     2
#3   D     1
#3   D     1
#3   D     6