gpt4 book ai didi

python - 每小时重新采样数据框

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:03 25 4
gpt4 key购买 nike

我想通过用每小时的平均值替换值来对 Sms、call 和 Internet 列中的数据重新采样。

代码 1 已尝试:

df1.reset_index().set_index('TIME').resample('1H').mean()

错误:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但得到了 'Index' 的实例

代码 2 已尝试:

df1['TIME'] = pd.to_datetime(data['TIME'])
df1.CALL.resample('60min', how='mean')

错误:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但得到了“RangeIndex”的实例数据框:

    ID          TIME         SMS          CALL      INTERNET
0 1 2013-11-30 23:00:00 0.277204 0.273629 13.674575
1 1 2013-11-30 23:10:00 0.341536 0.058176 13.330858
2 1 2013-11-30 23:20:00 0.379427 0.054601 11.329552
3 1 2013-11-30 23:30:00 0.600781 0.218489 13.166163
4 1 2013-11-30 23:40:00 0.405565 0.134176 13.347791
5 1 2013-11-30 23:50:00 0.187700 0.080738 12.434744
6 1 2013-12-01 00:00:00 0.282651 0.135964 13.860353
7 1 2013-12-01 00:10:00 0.109826 0.056388 12.583463
8 1 2013-12-01 00:20:00 0.348638 0.053438 12.644995
9 1 2013-12-01 00:30:00 0.138375 0.054062 12.251733
10 1 2013-12-01 00:40:00 0.054062 0.163803 11.292642


df1.dtypes
ID int64
TIME object
SMS float64
CALL float64
INTERNET float64
dtype: object

最佳答案

您可以在 resample 中使用参数 on :

on : string, optional

For a DataFrame, column to use instead of index for resampling. Column must be datetime-like.
New in version 0.19.0.

df1['TIME'] = pd.to_datetime(df1['TIME'])
df = df1.resample('60min', on='TIME').mean()
print (df)
ID SMS CALL INTERNET
TIME
2013-11-30 23:00:00 1 0.365369 0.136635 12.880614
2013-12-01 00:00:00 1 0.186710 0.092731 12.526637

或者为DatetimeIndex添加set_index:

df1['TIME'] = pd.to_datetime(df1['TIME'])
df = df1.set_index('TIME').resample('60min').mean()

关于python - 每小时重新采样数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49344899/

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