我想使用多个分隔符将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个字符的字符串
答案 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_csv
以string
的形式返回,因此如果数据量很大,则会迁移到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')