如何在Python中将dataframe保存为txt时删除空行?

2024-07-01 07:06:10 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这样一个数据帧:

df = pd.DataFrame({'a':[2, 3, 4, 4, 2],
                    'b':[30, 19, 22, 10, 15],
                    'c':[200, 102, 260, 299, 400]})

我想将其保存为txt,因此我使用了以下代码:

with open (r'C:\Users\user026\Desktop\\' + 'example.txt', 'w') as wf:
    df_str = df.to_csv(sep="\t", index=None, header=False)
    wf.write('~A\n')    # adding a character before the real text
    wf.writelines(df_str)

它确实将数据帧保存为txt文件,但在每行之间添加了一个空行。结果如下:

example.txt

~A
2   30  200

3   19  102

4   22  260

4   10  299

2   15  400

我应该怎么做才能删除txt文件中的这些空行,这样我的结果就会像下面这样

~A
2   30  200
3   19  102
4   22  260
4   10  299
2   15  400

多谢各位


Tags: 文件数据代码txtdataframedfexamplewith
1条回答
网友
1楼 · 发布于 2024-07-01 07:06:10

那么:

df.columns = ['~A'] + ['']*2
df.to_csv('example.txt', sep='\t', index=False)

你会得到(第一行有两个额外的\t

~A      
2   30  200
3   19  102
4   22  260
4   10  299
2   15  400

或者,您可以先聚合文本以创建单列数据帧,然后使用to_csv

(df.astype(str).agg('\t'.join, axis=1)
   .to_frame(name='~A')
   .to_csv('example.txt', index=False)
)

这将导致(不再有额外的\t):

~A
2   30  200
3   19  102
4   22  260
4   10  299
2   15  400

相关问题 更多 >

    热门问题