【发布时间】:2016-12-08 06:11:44
【问题描述】:
Python dict 的格式如下:
'{"a":1, "b":2, "c":3}'
注意它使用逗号来分隔不同的键:值对。
问题是我有一个 CSV 文件,它也是用逗号分隔的列:
'
"id", "gender", "age", "name"
"001", "male", "14", "{"first":"Mike", "last":"Green"}"
"002", "female", "15", "{"first":"Kate", "last":"Spear"}"
'
当我这样做时pandas.read_csv('csvfile.csv', sep = ',', names=["id", "gender", "age", "name"])
我明白了:
'
"id", "gender", "age", "name"
"001", "male", "14", "{"first":"Mike"
"002", "female", "15", "{"first":"Kate"
'
我猜的原因是 csv 阅读器将 dict 中的名字后面的逗号视为 csv 文件中的分隔符。由于我只指定了 4 个名为“id”、“gender”、“age”、“name””的列,所以它忽略了姓氏。
对此有什么想法或可能的解决方案吗?谢谢!
【问题讨论】:
-
您最初是如何生成该文件的?引用也相当无用。
-
是的,我认为它们也没用。这个数据集是由其他人生成的。如果我这样做了,我宁愿不在那个领域使用 python dict。现在问题来了,我正在尝试在此基础上做一些工作。
-
不幸的是,
pandas.read_csv()对可接受的输入文件的构成要求更高。'python'引擎接受一个迭代器,但随后期望它是一个csv.reader()对象。暂时没时间了。 -
也许你可以使用 dtype 参数来强制最后一列?或者尝试使用 sep=',{}'。真的是在黑暗中拍摄。
-
解析这个没有标题,然后删除 { , } 的
标签: python csv pandas dictionary