我有一个数据框:
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
是否可以从
groupby
生成由first()
应用于value
和last()
应用于data
组成的数据帧?如果它更简单,您可以假设last()
应用于除value
之外的所有内容,而first()
仅应用于value
。我可以分两组做,但一组可以吗? 最佳答案
您可以将函数的指令传递给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
如果要在“value”列上调用
first
和last
,可以传递函数列表。这里pandas
可以通过只传递函数的字符串名来推断调用哪个方法关于python - 是否可以在 Pandas 的groupby操作中应用“first()”和“last()”来分隔列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51747979/