我如何从 pandas 数据框创建一个文本文件,该数据框以另一种形式混合两列?

How can i create a text file from a pandas dataframe mixing two columns in an alternate form?

假设我在同一个巨大的数据帧(超过 1G 的数据)上有两列 pandas 类似这样(简化):

df

A B
C D

我想创建一个包含所有数据的文本文件,格式如下:

A
B
C
D

你会怎么做?

有几种方法。您可以使用 .stack().melt().unstack()pd.concat():

输入:

0 1
A B
C D

#1:

pd.DataFrame(df.stack().reset_index(drop=True))

#2:

pd.DataFrame(df.melt().iloc[:,-1])

#3:

pd.DataFrame(df.unstack().reset_index(drop=True)) #keeps order as A, C, B, D

#4:

pd.DataFrame(pd.concat([df['0'],df['1']]).reset_index(drop=True)) #keeps order as A, C, B, D

输出:

0
A
B
C
D

您可以使用 np.savetxt

将数据框保存到文本文件中

要在新行中保存每一列,请使用 df.to_numpy().flatten() 将数据帧转换为 numpy 数组,然后将其展平。

np.savetxt("new.txt", df.to_numpy().flatten(), fmt='%s')

感谢大家的意见,我自己做了解决方案,因为这个问题非常具体,所以我不得不根据自己的需要进行调整,但你们的回答为我指明了正确的方向!

import pandas as pd
import os
df = pd.DataFrame(pd.read_csv('0.csv',header=None).loc[:, [3, 4]].stack().reset_index(drop=True))
f=open("0.txt","w+") # file name and mode
for index,row in df.iterrows():
  f.writelines(row[0])
f.close()