python 如何将每小时的数据划分为5分钟间隔,并确保每个小时的记录相同?

kmbjn2e3  于 2022-12-02  发布在  Python
关注(0)|答案(1)|浏览(111)

我收到类似此格式的数据

Time                    Humidity Condition
2014-09-01 00:00:00     84       Cloudy
2014-09-01 01:00:00     94       Rainy

我尝试使用df.resample('5T'),但似乎无法在同一小时内复制数据,并且df.resample('5T')需要mean()之类的函数,但我不需要它。
我试着这样做x1c 0d1x
但问题是......我不想使用“平均值”,因为它不保持“湿度”和“条件”的原始值。我只希望数据

Time                    Humidity Condition
2014-09-01 00:00:00     84       Cloudy
2014-09-01 00:05:00     84       Cloudy
2014-09-01 00:10:00     84       Cloudy
.
.
.
2014-09-01 00:55:00     84       Cloudy 
2014-09-01 01:00:00     94       Rainy
2014-09-01 01:05:00     94       Rainy
2014-09-01 01:10:00     94       Rainy 
.
.
.

不知道有没有出路,请问有没有解决这个问题的办法?多谢!

bnlyeluc

bnlyeluc1#

示例

data = {'Time': {0: '2014-09-01 00:00:00', 1: '2014-09-01 01:00:00'},
        'Humidity': {0: 84, 1: 94},
        'Condition': {0: 'Cloudy', 1: 'Rainy'}}
df = pd.DataFrame(data)

df

Time                Humidity    Condition
0   2014-09-01 00:00:00 84          Cloudy
1   2014-09-01 01:00:00 94          Rainy

代码

我为20T而不是5T编写代码,因为5T太短了。

(df.set_axis(pd.to_datetime(df['Time']))
 .reindex(pd.date_range(df['Time'][0], freq='20T', periods=6))
 .assign(Time=lambda x: x.index)
 .reset_index(drop=True).ffill())

实验结果:

Time                Humidity    Condition
0   2014-09-01 00:00:00 84.0        Cloudy
1   2014-09-01 00:20:00 84.0        Cloudy
2   2014-09-01 00:40:00 84.0        Cloudy
3   2014-09-01 01:00:00 94.0        Rainy
4   2014-09-01 01:20:00 94.0        Rainy
5   2014-09-01 01:40:00 94.0        Rainy

相关问题