是否有将数据帧的某些值写入 Python 中的 .txt 文件的函数?

Rad*_*ka 5 python dataframe pandas

我有一个数据框如下:

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
Run Code Online (Sandbox Code Playgroud)

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

例如:

txt file

1 C E 
2 A F 
3 E 
4 C D 
5 A B
Run Code Online (Sandbox Code Playgroud)

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

Mus*_*dın 5

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

df.ne("0").dot(df.columns + " ").str.rstrip().to_csv("text_file.txt")
Run Code Online (Sandbox Code Playgroud)

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

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

df.ne("0").dot(df.columns + " ").str.rstrip().rename_axis(index=None)
Run Code Online (Sandbox Code Playgroud)

然后to_csv如上所述。