熊猫:将杂项键合并到“其他”行

时间:2014-03-14 02:39:55

标签: pandas

我有像这样的DataFrame

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 个答案:

答案 0 :(得分: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

答案 1 :(得分: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