python - pandas:TimeGrouper 的文档在哪里?

标签 python pandas

我经常使用 Pandas,它很棒。我也使用 TimeGrouper,它很棒。我实际上不知道关于 TimeGrouper 的文档在哪里。有吗?

谢谢!

最佳答案

pd.TimeGrouper()formally deprecated在 pandas v0.21.0 中支持 pd.Grouper() .

pd.Grouper() 的最佳用途是在 groupby() 中,当您还对非日期时间列进行分组时。如果您只需要按频率分组,请使用 resample()

例如,假设您有:

>>> import pandas as pd
>>> import numpy as np
>>> np.random.seed(444)

>>> df = pd.DataFrame({'a': np.random.choice(['x', 'y'], size=50),
                       'b': np.random.rand(50)},
                      index=pd.date_range('2010', periods=50))
>>> df.head()
            a         b
2010-01-01  y  0.959568
2010-01-02  x  0.784837
2010-01-03  y  0.745148
2010-01-04  x  0.965686
2010-01-05  y  0.654552

可以做:

>>> # `a` is dropped because it is non-numeric
>>> df.groupby(pd.Grouper(freq='M')).sum()
                  b
2010-01-31  18.5123
2010-02-28   7.7670

但以上内容有点不必要,因为您只是在索引上进行分组。相反,您可以这样做:

>>> df.resample('M').sum()
                    b
2010-01-31  16.168086
2010-02-28   9.433712

产生相同的结果。

相反,这是 Grouper() 有用的情况:

>>> df.groupby([pd.Grouper(freq='M'), 'a']).sum()
                   b
           a        
2010-01-31 x  8.9452
           y  9.5671
2010-02-28 x  4.2522
           y  3.5148

有关更多详细信息,请查看 Ted Petrou 的 Pandas Cookbook 的第 7 章.

关于python - pandas:TimeGrouper 的文档在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45156289/

相关文章:

python - 根据不同列中值的交集查找相似组

Python 3 - 用下一个字母检查字符串中的字母

python - 在 jupyter 中使用 matplotlib 绘制非常小的值

python - 在 Python 中,如何将列表中的所有项目转换为 float ?

python - 向下移动一行然后重命名该列

python - 如何展平 pandas DataFrame 中的分层列索引?

python - 在第 1 列中查找精确的单元格值并将第 2 列的值连接到新列中

python - 在 Python 中将 openCV 图像转换为 PIL 图像(用于 Zbar 库)

python - 将空格分隔的元素拆分为单独的行

python - 转换大型数据框 - 花费太长时间