使用 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
我有许多 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