使用Pandas对分组数据重新采样以获得日平均数据

2024-09-22 20:34:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是熊猫队的新手,当我试图从数据文件中获取每日平均值时遇到了一些问题

因此,我的数据结构如下:

                      DATA  ESTACION
DATETIME                           
2020-01-15 00:00:00   175        47
2020-01-15 01:00:00   152        47
2020-01-15 02:00:00   180        47
2020-01-15 03:00:00   132        47
2020-01-15 04:00:00   115        47
...                   ...       ...
2020-03-13 19:00:00    38        16
2020-03-13 20:00:00    53        16
2020-03-13 21:00:00    73        16
2020-03-13 22:00:00    28        16
2020-03-13 23:00:00    22        16

这是24个监测站收集的空气污染结果。如您所见,每个站点每小时接收一次信息

我正在按站点获取每日平均数据。我就是这么做的:

我将所有信息按站点分组

grouped = data.groupby(['ESTACION'])

然后对分组数据进行每日平均重采样

resampled = grouped.resample('D').mean()

这就是我得到的:

                            DATA  ESTACION
ESTACION DATETIME                        
4        2020-01-02   18.250000       4.0
         2020-01-03         NaN       NaN
         2020-01-04         NaN       NaN
         2020-01-05         NaN       NaN
         2020-01-06         NaN       NaN
...                         ...       ...
60       2020-11-29         NaN       NaN
         2020-11-30         NaN       NaN
         2020-12-01         NaN       NaN
         2020-12-02  118.666667      60.0
         2020-12-03   80.833333      60.0

我真的不知道发生了什么,因为我只有2020-01-15-2020-03-13的数据,它显示了来自其他时间戳和NaN结果的信息

如果你还需要什么来复制这个案子,请告诉我

谢谢并致以最良好的问候


Tags: 数据信息数据结构datadatetime站点数据文件nan
1条回答
网友
1楼 · 发布于 2024-09-22 20:34:10

需要输出,因为resample总是创建连续的DatetimeIndex

因此可以通过^{}删除缺少的行:

resampled = grouped.resample('D').mean().dropna()

另一种解决方案是使用^{}

data.groupby(['ESTACION', data['DATETIME'].dt.date]).mean()

相关问题 更多 >