我保存了一个Pandas Dataframe ,看起来像下面的csv文件。
a
0 {'word': 5.7}
1 {'khfds': 8.34}
当我尝试读取如下所示的 Dataframe 时,收到以下错误。
df = pd.read_csv('foo.csv', index_col=0, dtype={'str': 'dict'})
TypeError: data type "dict" not understood
我的问题的核心是如何读取csv文件以恢复 Dataframe ,使其与创建时的格式相同。我还尝试阅读而不读取dtype={},以及将****'dict'**替换为'dictionary'、'object'和'str'。
4条答案
按热度按时间uurity8g1#
CSV文件可能只包含文本,因此字典不在范围内。因此,您需要逐字读取文本以转换为
dict
。一种方法是使用ast.literal_eval
:然而,我强烈建议你不要用Pandas来存储字典指针。Pandas最适合于连续的内存块,例如将数字数据分成数字序列。
piztneat2#
您也可以在阅读csv文件时直接转换为字典,如下所示:
hi3rlvi23#
(我没有足够的声誉来评论)即使在给出ast.literal_eval之后,我也会遇到“ValueError:某些dict列上的节点或字符串”“格式不正确。
修正了dict中的间距,为我修正了这个问题。例如-
之前
第一个月
后
ast.literal_eval("{'word': 5.7}, {'khfds': 8.34}")
希望这对某人有帮助
1cklez4t4#
您也可以使用简单明了的python eval,如下所示: