带有多个分隔符的熊猫to_csv

时间:2019-02-23 04:19:31

标签: python pandas csv

我想使用多个分隔符将pandas数据帧转换为csv。有办法吗?

Error name :  Template error: if specifying one argument to Fn::GetAtt,   
that argument must be a non-empty string in format <LogicalId>.<Attribute>.
  

错误:定界符必须为1个字符的字符串

2 个答案:

答案 0 :(得分:3)

最简单的方法可能是先使用唯一的单字符分隔符,然后替换它:

tsv = dataframe.to_csv(sep='\t') # use '\1' if your data contains tabs
psv = tsv.replace('\t', '%%')
with open('file.csv', 'w') as outfile:
    outfile.write(psv)

P.S .:考虑使用.csv以外的扩展名,因为它没有逗号分隔。

答案 1 :(得分:0)

我认为约翰所说的替换可能存在一些错误,因为它不能保证替换的字符是分隔符。

此外,由于to_csvstring的形式返回,因此如果数据量很大,则会迁移到memory error

这是另一个可行的解决方案。

with open('test_pandas.txt', 'w') as f:
    for index, row in dataframe.iterrows():
        l = map(str, row.values.tolist())
        line = '%%'.join(l)
        f.write(line+'\n')