python-2.7 - 对 pandas 数据帧重新采样并计算实例数

标签 python-2.7 pandas resampling

如果我有一个数据框,例如:

index = pd.date_range(start='2014 01 01 00:00', end='2014 01 05 00:00', freq='12H')
df = pd.DataFrame(pd.np.random.randn(9),index=index,columns=['A'])

df
Out[5]: 
                            A
2014-01-01 00:00:00  2.120577
2014-01-01 12:00:00  0.968724
2014-01-02 00:00:00  1.232688
2014-01-02 12:00:00  0.328104
2014-01-03 00:00:00 -0.836761
2014-01-03 12:00:00 -0.061087
2014-01-04 00:00:00 -1.239613
2014-01-04 12:00:00  0.513896
2014-01-05 00:00:00  0.089544

我想重新采样到每日频率,这很容易:

df.resample(rule='1D',how='mean')

Out[6]: 
                   A
2014-01-01  1.544650
2014-01-02  0.780396
2014-01-03 -0.448924
2014-01-04 -0.362858
2014-01-05  0.089544

但是,我需要跟踪每天有多少个实例。是否有一种很好的 pythonic 方法使用重新采样来执行指定的“如何”操作并跟踪进入每个平均值的数据点数量,例如产量

Out[6]: 
                       A    Instances
    2014-01-01  1.544650    2
    2014-01-02  0.780396    2
    2014-01-03 -0.448924    2
    2014-01-04 -0.362858    2
    2014-01-05  0.089544    2

最佳答案

方便地,如何接受列表:

df1 = df.resample(rule='1D', how=['mean', 'count'])

这将返回一个带有 MultiIndex 列的 DataFrame:一个级别表示“A”,另一个级别表示“mean”和“count”。要获得像问题中所需输出这样的简单 DataFrame,您可以删除额外的级别,例如 df1.columns = df1.columns.droplevel(0) ,或者更好的是,您可以在 df['A'] 而不是 df

关于python-2.7 - 对 pandas 数据帧重新采样并计算实例数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507694/

相关文章:

python - 将 .jpg 图像转换为 .png

java - Java 中的 Jython 错误 : ImportError: No module named type_check

python - 为什么打印内部类打印出来就好像它是一个模块的变量?

python - 在 Quandl 数据上用 Python 实现 ARIMA 时出错

algorithm - 实时数据捕获的百分比

python - 检查与另一个列表匹配的嵌套列表值组合

python - 根据没有公共(public)列的其他两个日期之间的日期合并两个数据框

python - 将压缩的 Stata 文件从 URL 读取到 pandas 中

java - 历史贸易数据的时间序列重采样

python - Pandas - 当频率不是倍数时重新采样?