用不同的分隔符保存文本文件

问题描述

我有一个包含100列的数据框,如何使用df.to_csv()和sep =',|; 导出/保存

因此在df.iloc [:,:15]之后,sep =';'和df.iloc [:,15:]和','?

我试图浏览文档,但找不到任何东西。

谢谢。

解决方法

.to_csv()中可能没有用于在一个调用中使用两个不同分隔符的内置解决方案。因此,我建议使用下一个纯Python解决方案,该解决方案仅将使用不同分隔符呈现的两个csv零件(或两个零件的任何一部分)连接在一起。 numpy仅用于用随机数填充数据帧,而对于csv创建则不是必需的。

在下面的代码中,我以示例题作者建议的限制:1515:为例。另外,我使用,作为两个csv子文件的行部分之间的分隔符。可以扩展代码以结合使用不同分隔符呈现的任意数量(不仅是两个)的csv子文件。

import pandas as pd,numpy as np

# Example dataframe creation
df = pd.DataFrame(np.random.randn(10,40))

with open('result.csv','wb') as f:
    f.write('\n'.join([','.join(line_parts) for line_parts in zip(*[
        df.iloc[:,begin : end].to_csv(sep = sep,header = False,index = False).splitlines()
        for begin,end,sep in [(None,15,';'),(15,None,',')]
    ])]).encode('utf-8'))