gpt4 book ai didi

python - Pandas 按一天中的小时分组到字典

转载 作者:太空狗 更新时间:2023-10-30 00:59:23 24 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示:

date                | Item   | count
------------------------------------
2016-12-06 10:45:08 | Item1 | 60
2016-12-06 10:45:08 | Item2 | 145
2016-12-06 09:45:00 | Item1 | 60
2016-12-06 09:44:54 | Item3 | 600
2016-12-06 09:44:48 | Item4 | 15
2016-12-06 11:45:08 | Item1 | 60
2016-12-06 10:45:08 | Item2 | 14
2016-11-06 09:45:00 | Item1 | 62
2016-11-06 09:44:54 | Item3 | 6
2016-11-06 09:44:48 | Item4 | 15

我正在尝试按一天中的某个小时(或稍后的一天)对项目进行分组,以了解以下统计信息: 每天售出的商品列表,例如:

  • 2016-12-06,从 09:00:0010:00:00,Item1、Item3 和 Item4 是卖;等等。
  • 2016-12-06,Item1、Item2、Item3、Item4(独特元素)售出。

虽然我离获取这些统计数据还很远,但我坚持按时间分组。最初,print df.dtypes 显示

date    object
Item object
count int64
dtype: object

因此,我使用以下代码行将日期列转换为 pandas 日期对象。

df['date'] = pd.to_datetime(df['date'])

现在,print df.dtypes 产生:

date    datetime64[ns]
Item object
count int64
dtype: object

但是,当我尝试通过执行以下代码行使用 TimeGrouperdate 列进行分组时

from pandas.tseries.resample import TimeGrouper 
print df.groupby([df['date'],pd.TimeGrouper(freq='Min')])

我收到以下 TypeError。按照给出的建议herehere ,使用 pd.to_datetime 进行转换应该可以解决此问题。

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'

我不知道如何解决这个问题以继续我正在寻找的统计数据。任何有关解决此错误和使用 TimeGrouper 最好以字典格式(或任何更有意义的格式)查找统计信息的提示都将不胜感激。

最佳答案

sold = df.set_index('date').Item.resample('H').agg({'Sold': 'unique'})
sold[sold.Sold.str.len() > 0]

Sold
date
2016-11-06 09:00:00 [Item4, Item3, Item1]
2016-12-06 09:00:00 [Item4, Item3, Item1]
2016-12-06 10:00:00 [Item1, Item2]
2016-12-06 11:00:00 [Item1]

关于python - Pandas 按一天中的小时分组到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com