2017-08-11 42 views
1

df.groupby()後面有一個以下數據。每個元素由製表符分隔:通過數據熊貓重新展開羣組

Num one two three 
Alp A B 

是否可以將groupby恢復爲融合格式?

Col1 Col2 
Num one 
Num two 
Num three 
Alp A 
Alp B 

在此先感謝。

AP

+2

'民一二three'是列? – jezrael

+0

所以它是一列? – jezrael

+0

是的。編輯它以提高清晰度。我已經將它加入到標籤 – Arun

回答

4
print (df) 
    col1 col2 col3 col4 
0 Num one two three 
1 Alp A B NaN 

使用set_index + unstack

df1 = df.set_index('col1').stack().reset_index(level=1, drop=True).reset_index(name='col2') 
print (df1) 
    col1 col2 
0 Num one 
1 Num two 
2 Num three 
3 Alp  A 
4 Alp  B 

或者melt,但對於刪除NaNs添加dropna

df2 = df.melt('col1', value_name='col2').drop('variable', 1).dropna(subset=['col2']) 
print (df2) 
    col1 col2 
0 Num one 
1 Alp  A 
2 Num two 
3 Alp  B 
4 Num three 
+0

這意味着,我必須將它們保存在1列中? – Arun

+0

不,沒有必要。 – jezrael

+0

將dropna刪除整個Alp的權利?這是不希望的。 set_index + unstack方法似乎很適合! – Arun