首页 > 解决方案 > 是否有将数据帧的某些值写入 Python 中的 .txt 文件的函数?

问题描述

我有一个数据框如下:

Index A B C D E F
1     0 0 C 0 E 0 
2     A 0 0 0 0 F
3     0 0 0 0 E 0
4     0 0 C D 0 0 
5     A B 0 0 0 0

基本上我想将数据框写入一个 txt 文件,这样每一行都只包含索引和后续的列名,不包括零。

例如:

txt file

1 C E 
2 A F 
3 E 
4 C D 
5 A B

数据集相当大,大约 1k 行,16k 列。有什么方法可以使用 Pandas 中的函数来做到这一点?

标签: pythonpandasdataframe

解决方案


在“是否是这个条目”生成的布尔矩阵"0"和数据框的列之间进行矩阵向量乘法,并将其写入文本文件to_csv(感谢@Andreas的回答!):

df.ne("0").dot(df.columns + " ").str.rstrip().to_csv("text_file.txt")

由于添加" "到最后一个条目,我们在最后删除了空格。

如果您不希望名称Index出现在文本文件中,您可以链接 arename_axis(index=None)以摆脱它,即,

df.ne("0").dot(df.columns + " ").str.rstrip().rename_axis(index=None)

然后to_csv如上所述。


推荐阅读