问题描述
让我们说我在大熊猫的同一个大型数据帧(超过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()