从我知道的文档中,为了保存为.csv
文件,我们可以做到:
df.to_csv(sep = ';')
但是,我想使用我的自定义分隔符,例如::::
。如何将:::
设置为分隔符?我试着:
df.to_csv(sep = ':::')
得到:TypeError: "delimiter" must be a 1-character string
我还尝试:df.to_csv('../data.csv', sep='\s*\:::', index=False)
,得到了相同的结果。因此,我如何设置自己的分隔符?。
更新
由于我的数据框|
,我不能使用这样的字符作为分隔符。我试图将其删除:
df.replace('\b|\b', '-', regex = True)
然而,它没有奏效。关于如何删除它的任何替代方法?。
答案 0 :(得分:3)
显然,熊猫似乎不允许这种行为。
但是,如果你绝对想要“:::”。为什么不导出具有不常见字符的数据帧,例如“|”然后打开文件并替换“|”通过“:::”。
这是我想象的唯一能够达到预期结果的解决方案。
答案 1 :(得分:2)
毕竟,我做了:
df['Col'] = df['Col'].str.replace('|', ':')
要从列中删除它。然后我修了一个不同的角色来分开我的df。
答案 2 :(得分:0)
Zipa帮助我解决了使用连续空格作为分隔符here:
的问题这可能是一种解决方法:
myCsv = df.astype(str).apply(lambda x: ' '.join(x), axis=1) myCsv.rename(' '.join(df.columns)).to_csv(file, header=True, index=False)
也许根据他的回答,尝试:
myCsv = df.astype(str).apply(lambda x: ':::'.join(x), axis=1)
myCsv.rename(':::'.join(df.columns)).to_csv(file, header=True,index=False)
如果te列名是字符串
,它对我有用答案 3 :(得分:0)
这是一个古老的帖子,但是在谷歌搜索如何将Dataframe导出到csv时,我似乎总是落在这里。
虽然不能直接用Pandas来做,但是可以用Numpy来做。
由于熊猫需要Numpy,因此您没有增加包裹的大小。
要做您想做的事,您可以简单地做:
import numpy as np
np.savetxt('out.csv', my_df, delimiter=':::')
Numpy提供了更大的api以保存csv文件。您甚至可以使用以下命令指定不同的分隔符:
import numpy as np
np.savetxt('out.csv', my_df, fmt=['%.2f:::', '%f', '%s'])
您可以找到所有可能的选项in the docs。
答案 4 :(得分:0)
Pandas版本0.24.2。乔纳森·德赫蒂亚尔发表评论作为答案。使用特殊字符(例如α)保存csv就像一个超级按钮