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 中的函数来做到这一点吗?
在“是否为该条目”生成的布尔矩阵"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如上所述。