Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用不同的分隔符保存文本文件_Python 3.x_Dataframe_Text Files - Fatal编程技术网

Python 3.x 使用不同的分隔符保存文本文件

Python 3.x 使用不同的分隔符保存文本文件,python-3.x,dataframe,text-files,Python 3.x,Dataframe,Text Files,我有一个包含100列的数据框,如何使用带有sep=',|的df.to_csv()导出/保存它 因此在df.iloc[:,:15]之后加上sep=';'和df.iloc[:,15:]带“,” 我试着翻阅了文件,但什么也找不到 谢谢。在一次调用中使用两个不同分隔符的.to_csv()中可能没有内置解决方案。因此,我建议使用下一个纯Python解决方案,它只连接两个(或任意数量的部分)使用不同分隔符呈现的csv部分numpy仅用于用随机数填充数据帧,而不是csv创建所必需的 在下面的代码中,我使用了问

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

因此在df.iloc[:,:15]之后加上sep=';'和df.iloc[:,15:]带“,”

我试着翻阅了文件,但什么也找不到


谢谢。

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

在下面的代码中,我使用了问题作者建议的限制
:15
15:
。我还使用了
作为两个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'))

我建议使用这个普通的python代码来连接两个csv子文件:
“\n”。连接([a+”、“+b表示a,b在zip中(df.iloc[:,:15.)。到_csv(sep=”;).splitlines(),df.iloc[:,15:。到_csv(sep=”,“).splitlines())
。另外,您可能需要在
a
b
之间添加一些内容作为您选择的分隔符。此外,我发现您可能需要添加参数
header=False,index=False
,以调用
。\u csv()
,因为您可能不需要行和列索引。