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

Python 如何从一个数据框中创建一个文本文件,该数据框以另一种形式混合了两列?,python,pandas,text-processing,Python,Pandas,Text Processing,假设我在一个巨大的数据帧(超过1G的数据)上有两列,如下所示(简化): df 我想创建一个文本文件,其中包含以下表格中的所有数据: A B C D 您将如何做到这一点?有几种方法。您可以使用.stack()或.melt()或.unstack()或pd.concat(): 输入: 0 1 A B C D #1: #2: #3: #4: 输出: 0 A B C D 您可以使用和将dataframe保存到文本文件中 要在新行中保存每列,请使用df.to\u numpy().flant()将数据帧

假设我在一个巨大的数据帧(超过1G的数据)上有两列,如下所示(简化):

df

我想创建一个文本文件,其中包含以下表格中的所有数据:

A
B
C
D

您将如何做到这一点?

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

输入:

0 1
A B
C D
#1:

#2:

#3:

#4:

输出:

0
A
B
C
D

您可以使用和将dataframe保存到文本文件中

要在新行中保存每列,请使用
df.to\u numpy().flant()
将数据帧转换为numpy数组,然后将其展平

np.savetxt(“new.txt”,df.to_numpy().flatte(),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()


从这些你认为最有效的方法是什么?这是一个巨大的数据帧,包含超过1G的数据,而且在写入文件时进行迭代和堆叠不是比预先堆叠所有内容更有效吗?@GlauberPrado我不认为在写入之前将其平坦化需要很长时间,但我不确定。我认为所有的方法都是相似的。1G的数据对熊猫来说并不坏。根据我的经验,Pandas在10G+之后开始挣扎,但这取决于你的电脑。谢谢,但这不适用于这一点,因为我正在处理大量跨多行的文本数据,因此这会破坏数据框切割字符串。
pd.DataFrame(df.melt().iloc[:,-1])
pd.DataFrame(df.unstack().reset_index(drop=True)) #keeps order as A, C, B, D
pd.DataFrame(pd.concat([df['0'],df['1']]).reset_index(drop=True)) #keeps order as A, C, B, D
0
A
B
C
D
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()