【问题标题】:How to get the index label for a series returned by groupby?如何获取 groupby 返回的系列的索引标签?
【发布时间】:2021-02-07 04:28:37
【问题描述】:

我读到了一个包含每日条目的考勤卡 CSV 文件:“用户”、“小时”。 我想知道提交了部分考勤卡(例如,每周少于 40 小时)的用户列表。

summed_entries = df.groupby('User')['Hours'].sum() 
# This returns me a Series of Users and their total hours logged. 

for item in summed_entries:
    if item < 40:
       print(???) # This is where I want to return the User, available to me as the Series index label. I am unclear how to go about this. 

【问题讨论】:

  • print(item) 长什么样子?

标签: python pandas dataframe series


【解决方案1】:

由于循环需要更多时间,因此您无需反复查找。相反,您可以执行以下操作

您可以在按条件分组时将索引重置为用户

summed_entries = df.groupby('User')['Hours'].sum().reset_index('Users')

现在,您不必循环,只需在数据框中找到记录

summed_entries.loc[summed_entries['hours'] < 40]

【讨论】:

    【解决方案2】:

    我不确定您为什么要在 pandas 中实现 for 循环,这似乎足以满足您的目的:

    summed_entries = df.groupby('User')['Hours'].sum()
    summed_entries = summed_entries[summed_entries < 40]
    

    要获取名称列表:

    list(summed_entries.index.values)
    

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多