将Pandas数据框写入.txt文件。

7

我的代码将大量数据写入txt文件。 我正尝试将pandas dataframe 作为代码的一部分打印到该txt文件中,但无法使用.write()方法,因为它只接受字符串。

我该如何将一个名为DF1的pandas dataframe打印到文件中?

我看到了类似的问题,但那些问题是针对仅为dataframe创建txt文件的,而我只希望我的dataframe出现在txt文件中。


1
我不理解你在研究中发现的内容和你想要实现的目标之间的区别。请说明你所寻找的内容。 - roganjosh
我目前使用.write()向现有的txt文件中写入了大量内容,希望能够将数据框打印到该文件中,并在此之后继续添加更多内容。其他方法则会为数据框编写单独的txt文件。 - Alejandro Rodriguez
这可能是一个新手的回复,但你是否尝试过将整个df转换为str? - Laurie
2个回答

10

使用to_string方法,然后您可以将模式设置为'a',使用write方法进行追加写入。

tfile = open('test.txt', 'a')
tfile.write(df.to_string())
tfile.close()

示例数据

import pandas as pd
import numpy as np

df = pd.DataFrame({'id': np.arange(1,6,1),
                   'val': list('ABCDE')})

test.txt

This line of text was here before.

代码

tfile = open('test.txt', 'a')
tfile.write(df.to_string())
tfile.close()

输出:test.txt
This line of text was here before.
   id val
0   1   A
1   2   B
2   3   C
3   4   D
4   5   E

1
如果我不想索引列怎么办? - yts61
1
df.to_string(index=False) - EntzY

4
Pandas DataFrames提供了to_string()to_json()to_csv()方法,这些方法可以帮助你。详见:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_string.htmlhttps://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.htmlhttps://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_json.html
以下是将文本文件写入字符串的示例。使用“w”标志进行写操作,“a”标志进行追加操作。
example_string = df1.to_string()
output_file = open('file.txt','a')
output_file.write(example_string)
output_file.close()

如果您只想将某些信息放入文本文件中,可以使用pandas或json方法进行选择等操作,请参阅上面的文档链接。在OP评论追加之前,我最初编写了有关json的示例。json支持dump()方法来帮助写入文件。 但是,在大多数情况下,与csv或txt相比,它不是保存附加输出的最理想格式。如果对任何人有用,可以这样做:
import json 

filename = 'file.json'

with open(filename, 'w') as file:
    json.dump(df1.to_json(), file)

抱歉,我编辑了一下,当我接到电话时,我开始回答并点击了提交按钮,然后回来用to_json、to_csv、to_string完成了它:它们都是字符串格式。OP所述的困难是获取数据框的字符串表示形式以进行.write()操作。 - firxworx
1
原始问题并没有涉及到追加,这是后来的评论。我进行了修订,加入了“a”并描述了“w”和“a”标志之间的区别。我可以再次回去重新排列它,以便首先描述文本哈哈。 - firxworx
如果我不想索引列怎么办? - yts61
1
try: df.to_string(index=False) - EntzY

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接