【发布时间】:2019-09-21 19:08:20
【问题描述】:
我有一个csv,其中每一行都是一个字典,在每一行的字典内,有一个列表,这个列表包含一个子列表和一个子字典。每个子列表有 2 个元素,子字典有 100 个键,每个键有一个值。这是数据的截图:
以下是文本格式的数据示例:
{"0": [[10.8, 36.0], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"1": [[10.8, 36.1], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"2": [[10.8, 36.2], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"3": [[10.8, 36.300000000000004], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"4": [[10.8, 36.4], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"5": [[10.8, 36.5], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"6": [[10.8, 36.6], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"7": [[10.8, 36.7], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}]}
{"8": [[10.8, 36.800000000000004], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0}]}
{"9": [[10.8, 36.9], {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0}]}
我想做的是把它读入一个熊猫数据框,它会产生这样的预期输出(为了简单起见,我只输入一行):
list_elemnt_1 list_elemnt_2 key_0, key_1, key_2, key_3, key_4, and so on...
value value value value value value value and so on...
对于 csv 中的每一行,我想构建一个数据框,每个子列表值 (2) 有一列,该行的字典中包含的子字典中的每个键对应一列。
我怎么能这样做?如果需要,请随时询问更多信息。
非常感谢您
编辑
Key_0、key_1、key_2 等...是子字典键,而不是主字典键
【问题讨论】:
-
您确定您提供的数据正确吗?第一个括号和第一个括号没有关闭
-
key_0是哪个值?主字典键还是子字典键? -
@zero 对不起,现在已修复
-
每一行看起来都像 JSON 数据,因此您可以将每一行作为普通文本读取并转换为 Python 的字典
data = json.loads(line_from_file),然后您就可以使用字典了。 -
@P.hunter 是的,我的意思是
open().readline()- 这就是为什么我使用名称line_from_file,而不是full_file或all_text_from_file。我这样做只是因为有问题的文件格式。
标签: python python-3.x pandas csv dictionary