Python 将列合并到数据框中的一列和新行中

Python 将列合并到数据框中的一列和新行中,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个这样的数据帧 col1 0 1 2 3 4 5 6 7 8 9 10 11 a NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN b NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN c x y NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN a k NaN

我有一个这样的数据帧

col1   0    1   2   3   4   5   6   7   8   9   10  11
 a     NaN  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
 b     NaN  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
 c     x    y   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
 a     k    NaN NaN z   NaN NaN NaN NaN NaN NaN NaN NaN
 h     NaN  x   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
我想把它改成:

col1   col2
 a     NaN
 b     NaN
 c     x   
 c     y
 a     k
 a     z
 h     x
有什么帮助吗?

你可以试试这个

df=df.set_index('col1')
df.loc[df.isnull().sum(1)==df.shape[1],0]='NaN'
df.stack().reset_index(level=1,drop=True).replace('NaN',np.nan).to_frame('col2').reset_index()
Out[544]: 
  col1 col2
0    a  NaN
1    b  NaN
2    c    x
3    c    y
4    a    k
5    a    z
6    h    x
你可以试试这个

df=df.set_index('col1')
df.loc[df.isnull().sum(1)==df.shape[1],0]='NaN'
df.stack().reset_index(level=1,drop=True).replace('NaN',np.nan).to_frame('col2').reset_index()
Out[544]: 
  col1 col2
0    a  NaN
1    b  NaN
2    c    x
3    c    y
4    a    k
5    a    z
6    h    x

顺序重要吗?不重要,但只是列的一致性,即{[a,NAN],[c,x],…..等等。}顺序重要吗?不重要,只是列的一致性,即{[a,NAN],[c,x],…..等等。}