将数据帧写入 csv 文件时解决错误“分隔符必须是 1 个字符的字符串”

2023-11-27

使用这个问题:Pandas 将数据帧写入 CSV 文件作为模型,我编写了以下代码来制作 csv 文件:

df.to_csv('/Users/Lab/Desktop/filteredwithheading.txt', sep='\s+', header=True)

但它返回以下错误:

TypeError: "delimiter" must be an 1-character string

我在这里查找了相关文档http://pandas.pydata.org/pandas-docs/stable/ generated/pandas.DataFrame.to_csv.html但我不知道我错过了什么,或者这个错误意味着什么。我也尝试在代码中使用 (sep='\s') ,但得到了相同的错误。


正如问题讨论中提到的(here),这不被认为是 pandas 问题,而是一个兼容性问题python's csv module与 python2.x。

解决该问题的解决方法是将分隔符括起来str(..)。例如,以下是如何重现问题并解决它的方法:

from __future__ import unicode_literals
import pandas as pd 
df = pd.DataFrame([['a', 'A'], ['b', 'B']])
df.to_csv(sep=',')

这将引发以下错误:

TypeError ....              
----> 1 df.to_csv(sep=',')
TypeError: "delimiter" must be an 1-character string

然而,以下将显示预期结果

from __future__ import unicode_literals
import pandas as pd 
df = pd.DataFrame([['a', 'A'], ['b', 'B']])
df.to_csv(sep=str(','))

Output:

',0,1\n0,a,A\n1,b,B\n'

对于您的情况,您应该按如下方式编辑代码:

df.to_csv('/Users/Lab/Desktop/filteredwithheading.txt', sep=str('\s+'), header=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据帧写入 csv 文件时解决错误“分隔符必须是 1 个字符的字符串” 的相关文章

随机推荐