2014-03-14 28 views
1
「其他」列

我有這樣熊貓:合併雜鍵進入

DataFrame({"key":["a","b","c","d","e"], "value": [5,4,3,2,1]}) 

一個數據幀我主要興趣在排「A」,「B」和「C」。我想將其他所有內容合併到像這樣的「其他」行中

 key value 
0  a  5 
1  b  4 
2  c  3 
3 others  3 

我想知道如何做到這一點。

回答

2

一是沒有建立一個數據幀d和e:

df2 = df[df.key.isin(["a","b","c"])] 

然後找到你想要的另一列有(使用SUM函數在這個例子中)值:

val = df[~df["key"].isin(["a","b","c"])].sum()["value"] 

最後,將此列追加到第二個df:

df2.append({"key":"others", "value":val},ignore_index=True) 

df2現爲:

 key value 
0  a  5 
1  b  4 
2  c  3 
3 others  3 
0

我找到了一種方法來做到這一點。不知道這是否是最好的方法。

In [3]: key_map = {"a":"a", "b":"b", "c":"c"} 
In [4]: data['key1'] = data['key'].map(lambda k: key_map.get(k, "others"))  
In [5]: data.groupby("key1").sum() 
Out[5]: 
     value 
key1 
a   5 
b   4 
c   3 
others  3