我有一个像这样的数据框
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
请帮忙吗?
答案 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