将列合并到数据框pandas

时间:2018-01-16 01:15:40

标签: 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 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

请帮忙吗?

1 个答案:

答案 0 :(得分:2)

你可以试试这个

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