data={'id':[1, 2, 3],'A': ['edx',None , 'edx'],'B': [None,'com',None ],'C': ['tab','tab',None ] }
df = pd.DataFrame(data)
給定資料框:
id A B C
1 edx None tab
2 None com tab
3 edx None None
期望的結果:
id Learn
1 edx
1 tab
2 com
2 tab
3 edx
同樣,我希望我在上面提到過。
uj5u.com熱心網友回復:
嘗試這個。我真的建議熟悉它,pd.melt因為它在重塑看起來像這樣的資料方面非常有用。
df = (df.melt(id_vars='id', value_name='Learn')
.dropna()
.sort_values(by='id', ascending='True'))
df.drop(columns=['variable'], inplace=True)
print(df)
輸出
id Learn
0 1 edx
6 1 tab
4 2 com
7 2 tab
2 3 edx
uj5u.com熱心網友回復:
這是一種方法。使用堆疊
out=(df.set_index('id') # set index
.stack() # stack
.droplevel(1) # remove the unwanted level
.reset_index()
.rename(columns={0:'Learn'}))
out
id Learn
0 1 edx
1 1 tab
2 2 com
3 2 tab
4 3 edx
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/526615.html
上一篇:如何按索引將單列資料框拆分為多列
