如何从熊猫数据框以替代形式混合两列创建文本文件?

问题描述

让我们说我在大熊猫的同一个大型数据帧(超过1G数据)上有两列,如下所示(简化):

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,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()