我有一个数据框:

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()应用于valuelast()应用于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”列上调用firstlast,可以传递函数列表。这里pandas可以通过只传递函数的字符串名来推断调用哪个方法

关于python - 是否可以在 Pandas 的groupby操作中应用“first()”和“last()”来分隔列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51747979/

10-12 16:39