【发布时间】:2016-03-03 19:12:19
【问题描述】:
我正在尝试以最低限度的人类可读性和易于熊猫可读的格式制作 .csv 文件。这意味着列应该被整齐地分开,以便您可以轻松识别每个值属于哪一列。问题是,用空格填充它会削弱 pandas 的功能。到目前为止,我得到的是
work ,roughness ,unstab ,corr_c_w ,u_star ,c_star
us ,True ,True ,-0.39 ,0.35 ,-.99
wang ,False , ,-0.5 , ,
cheng , ,True , , ,
watanabe, , , ,0.15 ,-.80
如果我取出上面 .csv 中的所有空格并直接使用pd.read_csv 读取它,它就可以完美地工作。前两列是布尔值,其他列是浮点数。但是,如果没有空格,它根本不适合人类阅读。当我用
pd.read_csv('bibrev.csv', index_col=0)
它不起作用,因为所有列和考虑的字符串显然都包括空格。当我使用
pd.read_csv('bibrev.csv', index_col=0, skipinitialspace=True)
然后它有点工作,因为浮点数被读取为浮点数,缺失值被读取为NaNs,这是一个很大的改进。但是,列名和布尔列仍然是带有空格的字符串。
有什么方法可以直接用 pandas 读取 .csv 文件吗?或者也许是 csv 格式的机会,并且仍然可以使用人类可读的 .csv 进行干净读取?
PS.:我试图避免使用 python 作为字符串读取所有内容,替换空格然后将其提供给 pandas,并且还试图避免定义一些函数并通过 converters 关键字将其传递给 pandas。
【问题讨论】:
-
希望我的代码能帮到你,我贴了in stack overflow