[英]reading csv file where one column is dict type
我有数据要读入.csv 文件,如下所示:
col1,col2,col3,col4,col5
"val1,val2,""{'key1': 'value1', 'key2': 'value2'}"",val4,val5"
"va11,val12,""{'key11': 'value11', 'key12': 'value12'}"",val14,val15"
我尝试通过 pandas 以多种方式导入此文件,但总是出错。 使用 pandas 可以轻松做到这一点吗?
这些行看起来像有效的 CSV 行,然后再次通过 CSV 写入器。 第二遍通过添加引号来转义已经 CSV 文件中的逗号和引号,从而将该行变成单列。 您可以反转该过程以加载 CSV。 或者修复错误的真正来源的作者。
import csv
import pandas as pd
import io
unmangled = io.StringIO()
with open("test.csv", newline="") as infile:
# header is unmanagled, so just write it
unmangled.write(next(infile))
# read the CSV - the first column is a CSV encoded CSV row
unmangled.writelines(row[0] + "\n" for row in csv.reader(infile))
# rewind and read the unmangled CSV
unmangled.seek(0)
df = pd.read_csv(unmangled)
print(df)
Output
col1 col2 col3 col4 col5
0 val1 val2 {'key1': 'value1', 'key2': 'value2'} val4 val5
1 va11 val12 {'key11': 'value11', 'key12': 'value12'} val14 val15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.