2013-05-18 31 views
0

我有以下數據框,我想將2,3,4,5列合併爲一列。在熊貓中合併相同數據的人口稀少列

| 0 | 1 | 2 | 3 | 4 | 5 | 
+-----+-----+-----+-----+-----+-----+ 
| 90 | 90 | A |  | A | A | 
| 101 | 101 |  |  | T | T | 
| 245 | 246 | AG | AG | AG | AG | 
| 302 | 302 | C |  |  |  | 
| 324 | 324 |  | G |  | G | 

每列都包含相同類型的數據,但是填充得很少。當考慮所有列時,每一行都會有一個條目。所以我的目標是將這些列結合在一起。

| 0 | 1 | new | 
+-----+-----+-----+ 
| 90 | 90 | A | 
| 101 | 101 | T | 
| 245 | 246 | AG | 
| 302 | 302 | C | 
| 324 | 324 | G | 

有沒有辦法在熊貓做到這一點,或者我必須在純python中逐行進行?

回答

1

您可以使用DataFrame.max(axis=1)計算列:

import pandas as pd 
from StringIO import StringIO 

data = """ 90 , 90 , A ,  , A , A 
101 , 101 ,  ,  , T , T 
245 , 246 , AG , AG , AG , AG 
302 , 302 , C ,  ,  ,  
324 , 324 ,  , G ,  , G """ 


df = pd.read_csv(StringIO(data), header=None) 
s = df.ix[:, 2:].max(axis=1) 
df = df.ix[:, :1] 
df["new"] = s 
print df 

結果:

 0 1 new 
0 90 90 A 
1 101 101 T 
2 245 246 AG 
3 302 302 C 
4 324 324 G 
+0

謝謝,這完美的作品! – kentwait