Tom*_*y10 6 python csv dictionary dataframe pandas
我将如下所示的 Pandas 数据框保存为 csv 文件。
a
0 {'word': 5.7}
1 {'khfds': 8.34}
Run Code Online (Sandbox Code Playgroud)
当我尝试读取如下所示的数据帧时,我收到以下错误。
df = pd.read_csv('foo.csv', index_col=0, dtype={'str': 'dict'})
TypeError: data type "dict" not understood
Run Code Online (Sandbox Code Playgroud)
我的问题的核心是如何读取 csv 文件以恢复与创建时相同的形式的数据帧。我还试图读取而不的D型细胞= {}以及替换 “字典”与替代品,如“字典”,“对象”和“STR”。
CSV 文件可能只包含文本,因此字典超出了范围。因此,您需要逐字阅读文本才能转换为dict
. 一种方法是使用ast.literal_eval
:
import pandas as pd
from ast import literal_eval
from io import StringIO
mystr = StringIO("""a
{'word': 5.7}
{'khfds': 8.34}""")
df = pd.read_csv(mystr)
df['a'] = df['a'].apply(literal_eval)
print(df['a'].apply(lambda x: type(x)))
0 <class 'dict'>
1 <class 'dict'>
Name: a, dtype: object
Run Code Online (Sandbox Code Playgroud)
但是,我强烈建议您不要专门使用 Pandas 来存储指向字典的指针。Pandas 最适合连续的内存块,例如将数字数据分成数字系列。