2014-03-14 29 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