Python Pandas-写入到_csv时使用多字符分隔符
pandas to_csv函数似乎只允许使用单字符分隔符/分隔符 是否有某种方法允许使用诸如“::”或“%%”之类的字符串 我试过:Python Pandas-写入到_csv时使用多字符分隔符,python,csv,dataframe,delimiter,Python,Csv,Dataframe,Delimiter,pandas to_csv函数似乎只允许使用单字符分隔符/分隔符 是否有某种方法允许使用诸如“::”或“%%”之类的字符串 我试过: df.to_csv(local_file, sep = '::', header=None, index=False) 并获得: TypeError: "delimiter" must be a 1-character string 想想这行a::b::c'对标准CSV工具意味着什么:一个a、一个空列、一个b、一个空列和一个c。即使在引用或转义更复杂的情况下
df.to_csv(local_file, sep = '::', header=None, index=False)
并获得:
TypeError: "delimiter" must be a 1-character string
想想这行
a::b::c'
对标准CSV工具意味着什么:一个a
、一个空列、一个b
、一个空列和一个c
。即使在引用或转义更复杂的情况下:“abc::def”::2
表示abc::def
、空列和2
因此,您所要做的就是在每一列之间添加一个空列,然后使用:
作为分隔符,输出几乎就是您想要的
我说“几乎”是因为熊猫将引用或逃避单列冒号。取决于您使用的方言选项,以及您尝试与之交互的工具,这可能是问题,也可能不是问题。不必要的引用通常不是问题(除非您要求QUOTE_ALL
,因为这样您的列将由:“”:
分隔,所以希望您不需要该方言选项),但不必要的转义可能是问题(例如,您可能会将字符串中的每一个:
都变成\:
或其他内容)。因此,您必须小心选择。但它适用于基本的“根据需要报价,大部分是标准的其他选项”设置。使用
例:
您可以将所需分隔符的单个字符附加到每个元素,然后为delimeter传递单个字符,但如果您打算将其读回
pandas
中,则会遇到相同的问题difficulty@EdChum好主意..在DF中的每个字段中附加一个字符的命令是什么(它有100列和10000行)。我猜最后一列不能有尾随字符(因为是最后一列)。谢谢!您还有其他需要的工具吗?因为大多数电子表格程序、Python脚本、R脚本等都不会像Pandas那样识别格式。将第一个:
附加到每个字段将不起作用,因为这只会保证每个字段都被引用或转义,所以您将获得somEthase>代码>:“:”/>代码,或至多<代码>::。(即使你想用方言参数来强制后者,它仍然会在一个值中间,而不是双冒号中逃出每一个冒号。)ftw,pandas现在支持多字符分隔符。但是,如果该分隔符出现在带引号的文本中,它将被拆分,并偏离在一行中检测到的字段的真实数量:(
np.savetxt(file.csv, np.char.decode(chunk_data.values.astype(np.bytes_), 'UTF-8'), delimiter='~|', fmt='%s',encoding=None)
np.savetxt(file.dat, chunk_data.values, delimiter='~|', fmt='%s',encoding='utf-8')