Pandas DataFrame按两列分组,并获得第一个和最后一个

尼拉尼草

我有一个DataFrame喜欢的追随者。

df = pd.DataFrame({'id' : [1,1,2,3,2],
                'value'  : ["a","b","a","a","c"], 'Time' : ['6/Nov/2012 23:59:59 -0600','6/Nov/2012 00:00:05 -0600','7/Nov/2012 00:00:09 -0600','27/Nov/2012 00:00:13 -0600','27/Nov/2012 00:00:17 -0600']})

我需要获得如下输出。

combined_id | enter time | exit time | time difference

应通过将“ id”和“ value”分组来创建Combined_id

g = df.groupby(['id', 'value'])

以下操作不适用于按两列分组。(如何使用first()last()这里作为进入和退出时间?)

df['enter'] = g.apply(lambda x: x.first())

获得差异会跟随工作吗?

df['delta'] = (df['exit']-df['enter'].shift()).fillna(0)
安迪·海登(Andy Hayden)

首先确保您的列是正确的日期时间列:

In [11]: df['Time'] = pd.to_datetime(df['Time'])

现在,您可以执行groupby并将agg与firstand lastgroupby方法一起使用:

In [12]: g = df.groupby(['id', 'value'])

In [13]: res = g['Time'].agg({'first': 'first', 'last': 'last'})

In [14]: res = g['Time'].agg({'enter': 'first', 'exit': 'last'})

In [15]: res['time_diff'] = res['exit'] - res['enter']

In [16]: res
Out[16]:
                        exit               enter  time_diff
id value
1  a     2012-11-06 23:59:59 2012-11-06 23:59:59     0 days
   b     2012-11-06 00:00:05 2012-11-06 00:00:05     0 days
2  a     2012-11-07 00:00:09 2012-11-07 00:00:09     0 days
   c     2012-11-27 00:00:17 2012-11-27 00:00:17     0 days
3  a     2012-11-27 00:00:13 2012-11-27 00:00:13     0 days

注意:这是一个无聊的示例,因为每个组中只有一个项目...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Pandas DataFrame按两列分组,并获得第一个和最后一个

来自分类Dev

获取Pandas DataFrame子集的第一个和最后一个索引

来自分类Dev

在Pandas DataFrame中找到第一个和最后一个非NaN值

来自分类Dev

使用Python Pandas减去列中的最后一个元素和第一个元素

来自分类Dev

Pandas 中一天的第一个和最后一个值(Python)

来自分类Dev

如何获取 Pandas 中 DataFrame 的第一个和最后一个值的百分比变化

来自分类Dev

访问包含列表的Pandas DataFrame列的每个第一个元素

来自分类Dev

Pandas Groupby平均值和多个列的第一个

来自分类Dev

Python Pandas 数据框中特定键的最后日期和第一个日期

来自分类Dev

Pandas 数据框在给定条件下查找第一个和最后一个元素并计算斜率

来自分类Dev

pandas数据框:按另一个列分组后获得列的最大值

来自分类Dev

pandas数据框:按另一个列分组后获得列的最大值

来自分类Dev

在Pandas DataFrame的每一行中查找第一个非零值

来自分类Dev

基于多个条件的Pandas DataFrame条件列仅在第一个条件下起作用?

来自分类Dev

如果从 Pandas 数据框列值中删除一个句子,则删除第一个单词

来自分类Dev

在 Pandas DataFrame 的行中找到第一个零

来自分类Dev

Pandas DataFrame 删除重复项,保留第一个“x”次出现

来自分类Dev

按两个条件分组并将名称附加在一起以在Pandas Dataframe上形成一个单元格

来自分类Dev

如何使用Python Pandas在数据框的最后一列中使用货币格式获取第一个单元格的行索引

来自分类Dev

Pandas中的SettingWithCopyWarning:如何设置列中的第一个值?

来自分类Dev

pandas数据框返回字符串中列的第一个单词

来自分类Dev

Pandas Groupby除列外,并以该列为第一个值

来自分类Dev

Python pandas:如何从特定列中选择第一个非“无”值?

来自分类Dev

如何在一个列和一个索引上连接两个Pandas数据框

来自分类Dev

我如何获得按MySQL查询分组的最后结果(不是第一个)

来自分类Dev

Pandas DataFrame-提取两个字符串之间的字符串,并包含第一个定界符

来自分类Dev

根据pandas列中值的最后一个字符从DataFrame中选择行

来自分类Dev

每个客户ID带有第一个零和'n'的条件,然后获取字母名称并添加到下一列pandas

来自分类Dev

返回Pandas Dataframe中字符串中第一个数字/字母的索引/位置

Related 相关文章

  1. 1

    Pandas DataFrame按两列分组,并获得第一个和最后一个

  2. 2

    获取Pandas DataFrame子集的第一个和最后一个索引

  3. 3

    在Pandas DataFrame中找到第一个和最后一个非NaN值

  4. 4

    使用Python Pandas减去列中的最后一个元素和第一个元素

  5. 5

    Pandas 中一天的第一个和最后一个值(Python)

  6. 6

    如何获取 Pandas 中 DataFrame 的第一个和最后一个值的百分比变化

  7. 7

    访问包含列表的Pandas DataFrame列的每个第一个元素

  8. 8

    Pandas Groupby平均值和多个列的第一个

  9. 9

    Python Pandas 数据框中特定键的最后日期和第一个日期

  10. 10

    Pandas 数据框在给定条件下查找第一个和最后一个元素并计算斜率

  11. 11

    pandas数据框:按另一个列分组后获得列的最大值

  12. 12

    pandas数据框:按另一个列分组后获得列的最大值

  13. 13

    在Pandas DataFrame的每一行中查找第一个非零值

  14. 14

    基于多个条件的Pandas DataFrame条件列仅在第一个条件下起作用?

  15. 15

    如果从 Pandas 数据框列值中删除一个句子,则删除第一个单词

  16. 16

    在 Pandas DataFrame 的行中找到第一个零

  17. 17

    Pandas DataFrame 删除重复项,保留第一个“x”次出现

  18. 18

    按两个条件分组并将名称附加在一起以在Pandas Dataframe上形成一个单元格

  19. 19

    如何使用Python Pandas在数据框的最后一列中使用货币格式获取第一个单元格的行索引

  20. 20

    Pandas中的SettingWithCopyWarning:如何设置列中的第一个值?

  21. 21

    pandas数据框返回字符串中列的第一个单词

  22. 22

    Pandas Groupby除列外,并以该列为第一个值

  23. 23

    Python pandas:如何从特定列中选择第一个非“无”值?

  24. 24

    如何在一个列和一个索引上连接两个Pandas数据框

  25. 25

    我如何获得按MySQL查询分组的最后结果(不是第一个)

  26. 26

    Pandas DataFrame-提取两个字符串之间的字符串,并包含第一个定界符

  27. 27

    根据pandas列中值的最后一个字符从DataFrame中选择行

  28. 28

    每个客户ID带有第一个零和'n'的条件,然后获取字母名称并添加到下一列pandas

  29. 29

    返回Pandas Dataframe中字符串中第一个数字/字母的索引/位置

热门标签

归档