【发布时间】:2020-07-16 01:43:52
【问题描述】:
我在处理我之前做过几次的过程时遇到了问题。我是 Python 和 Jupyter 笔记本的新用户,我正在尝试转换包含以下数据的文本文件:(25k 列表):
[X,
Y],
[Z,
X,
Y,
Z],
这是文件结构,我正在尝试使用以下代码将其转换为 pandas 数据帧(宽列存储):
import pandas as pd
import ast
import json
data = open("C:/Users/itamar/Desktop/SuperMushlam/How To Use Apriori Algorithm A-Z/sss.txt", 'r', encoding = 'windows-1255', errors='ignore').read().replace("\r","").replace("\n","")
remove_doulequotes = data.replace('""', '').replace('"', '')
list_of_str = list(map(lambda x: '"{x}"'.format(x=x), remove_doulequotes.split(",")))
final_data = ", ".join(list_of_str).replace('"[[', '[["').replace(']"','"]').replace(']]"', '"]]').replace('"[', '["').replace(']"]', '"]]')
data_in_list = ast.literal_eval(final_data)
df = pd.DataFrame(data_in_list)
df
它以前工作过,所以我试图了解在此过程中我的问题在哪里。 这是我收到的错误消息:
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-10-d41ed8f6586e> in <module>
11 final_data = ", ".join(list_of_str).replace('"[[', '[["').replace(']"','"]').replace(']]"', '"]]').replace('"[', '["').replace(']"]', '"]]')
12
---> 13 data_in_list = ast.literal_eval(final_data)
14
15 df = pd.DataFrame(data_in_list)
~\Anaconda3\lib\ast.py in literal_eval(node_or_string)
44 """
45 if isinstance(node_or_string, str):
---> 46 node_or_string = parse(node_or_string, mode='eval')
47 if isinstance(node_or_string, Expression):
48 node_or_string = node_or_string.body
~\Anaconda3\lib\ast.py in parse(source, filename, mode)
33 Equivalent to compile(source, filename, mode, PyCF_ONLY_AST).
34 """
---> 35 return compile(source, filename, mode, PyCF_ONLY_AST)
36
37
MemoryError:
有什么建议吗?我不确定我的问题在哪里。非常感谢!
这就是我需要的:
【问题讨论】:
-
您能否用一个示例来更新这个问题,说明您希望在 DataFrame 上运行此代码后的样子?比如文件中的每个列表会是一行还是一列或其他什么?
-
嘿,当然。正如我所写的,我需要一个widecolumnstore,每个列表都是一行,每个值都是一个单元格。我现在就编辑它
标签: python pandas list dataframe text