是否可以在熊猫的groupby操作中应用“ first()”和“ last()”来分隔列?

时间:2018-08-08 13:29:02

标签: python pandas pandas-groupby

我有一个数据框:

class MyArray extends Array {
}
const a = new MyArray("a", "b", "c");
const b = a.slice(1);              // Creates new MyArray
console.log(b.join(", "));         // "b, c"
console.log(b instanceof MyArray); // true

是否可以从constructor生成一个数据帧,该数据帧由应用于instanceof的{​​{1}}和应用于df = pd.DataFrame({'id': [1, 1, 2, 2], 'data': [1, 2, 3, 4], 'value': [10, 9, 8, 7]}) In [4]: df Out[4]: id data value 0 1 1 10 1 1 2 9 2 2 3 8 3 2 4 7 In [5]: df.groupby(['id']).last() Out[5]: data value id 1 2 9 2 4 7 In [6]: df.groupby(['id']).first() Out[6]: data value id 1 1 10 2 3 8 的{​​{1}}组成?如果方便,可以假设groupby应用于除first()之外的所有内容,并且value仅应用于last()。我可以在两个单独的groupby中做到这一点,但是有可能吗?

1 个答案:

答案 0 :(得分:6)

您可以将函子字典传递给agg

In[80]:
df.groupby('id').agg({'data':'last', 'value':['first','last']})
Out[80]: 
   data value     
   last first last
id                
1     2    10    9
2     4     8    7

如果要在“值”列上调用firstlast,则可以传递函数列表。 pandas可以通过仅传递funcs的字符串名称来推断要调用的方法