首页 > 解决方案 > 在字典中阅读时“没有要从文件中解析的列”

问题描述

我正在尝试在 python 中获取一个字典对象,将其写入一个 csv 文件,然后从该 csv 文件中读回它。

但它不起作用。当我尝试重新读取它时,它给了我以下错误:

EmptyDataError: No columns to parse from file

我不明白这有两个原因。首先,如果我使用 pandas 自己的 to_csv 方法,它应该为我提供正确的 csv 格式。其次,当我打印出我要保存的数据帧的标题值(通过这样做: print(df.columns.values) )时,它说我确实有标题(“一个”和“两个” .) 所以如果我发送的对象有列名,我不知道为什么当我试图读回它时找不到它们。

import pandas as pd
testing = {"one":1,"two":2 }
df = pd.DataFrame(testing, index=[0])

file = open('testing.csv','w')

df.to_csv(file)

new_df = pd.read_csv("testing.csv")

我究竟做错了什么?

在此先感谢您的帮助!

标签: pythonpandascsvdictionary

解决方案


默认pandas.DataFrame.to_csv采用路径而不是text io. 只需删除文件声明并直接使用路径,传递index = False以跳过索引。

import pandas as pd
testing = {"one":1,"two":2 }
df = pd.DataFrame(testing, index=[0])

df.to_csv('testing.csv', index = False)

new_df = pd.read_csv("testing.csv")

推荐阅读