2013-11-15 33 views
1

我有一個熊貓據幀U字型NX5選擇如何從不同的列有條件熊貓

['','','A','',''] 
['','C','','',''] 
['','A','','',''] 
['','','','T',''] 
. 
. 
. 

我想將其轉換爲NX1形狀變得非空值

['A'] 
['C'] 
['A'] 
['T'] 
. 
. 
. 

這怎麼可能做完了?

+0

你想要一個熊貓解決方案還是pythonic解決方案? – yuvi

+0

熊貓解決方案更好 – gungor

回答

2

您可以撥打"".join的每一行:

df.apply("".join, axis=1) 

如果你不能確保每行只有一個不爲空值,下面的方法是更好:

import pandas as pd 

df = pd.DataFrame(
    [['','','A','',''], 
    ['','C','','',''], 
    ['','A','','',''], 
    ['','','','T','']] 
) 

s = df.stack() 
print s[s!=""] 

輸出:

0 2 A 
1 1 C 
2 1 A 
3 3 T 
dtype: object 

超過一列:

r = s[s!=""] 
r.groupby(level=0).apply(pd.DataFrame.reset_index, drop=True).unstack() 
+0

謝謝,那就是精確 – gungor