如何用小时列融化pandas.DataFrame并以15分钟为间隔进行划分

磨坊主

我有这样的DataFrame事情:

data = [['2019-01-01', .1, .2],
        ['2019-01-02', .5, .3],
        ['2019-01-03', .2, .4]]
df = pd.DataFrame(data, columns=['date', 'hour01', 'hour02'])
         date  hour01  hour02
0  2019-01-01     0.1     0.2
1  2019-01-02     0.5     0.3
2  2019-01-03     0.2     0.4

如何融化它,使我有15分钟的正确间隔?像这样:

    timestamp              value
0  2019-01-01 00:00:00     0.1
1  2019-01-01 00:15:00     0.1
2  2019-01-01 00:30:00     0.1
3  2019-01-01 00:45:00     0.1
4  2019-01-01 01:00:00     0.2
5  2019-01-01 01:15:00     0.2
6  2019-01-01 01:30:00     0.2
7  2019-01-01 01:45:00     0.2
...
16 2019-01-03 00:00:00     0.2
17 2019-01-03 00:15:00     0.2
18 2019-01-03 00:30:00     0.2
19 2019-01-03 00:45:00     0.2
20 2019-01-03 01:00:00     0.4
21 2019-01-03 01:15:00     0.4
22 2019-01-03 01:30:00     0.4
23 2019-01-03 01:45:00     0.4

编辑

df.melt(id_vars=['timestamp'], value_vars=['hour_{}'.format(str(x).zfill(2)) for x in range(1, 24)])

给我这个:

27    2017-01-28  hour_01  34.90
28    2017-01-29  hour_01  36.04
29    2017-01-30  hour_01  36.51
          ...      ...    ...
16760 2018-12-02  hour_23  51.50
16761 2018-12-03  hour_23  54.00
16762 2018-12-04  hour_23  53.87

然后去哪儿?

基督的数量

解决方案基础上meltset_indexffill

df = df.melt(id_vars=['date'], var_name='hour')
df['timestamp'] = pd.to_datetime(df['date']) + pd.to_timedelta(df['hour'].str[4:].astype(int) - 1, unit='h')
df = df.set_index(pd.DatetimeIndex(df['timestamp']))
df = df.drop(columns=['timestamp', 'date', 'hour'])
df = df.resample('15T').ffill()
df = df.reset_index()

结果:

              timestamp  value
0   2019-01-01 00:00:00    0.1
1   2019-01-01 00:15:00    0.1
2   2019-01-01 00:30:00    0.1
3   2019-01-01 00:45:00    0.1
4   2019-01-01 01:00:00    0.2
..                  ...    ...
192 2019-01-03 00:00:00    0.2
193 2019-01-03 00:15:00    0.2
194 2019-01-03 00:30:00    0.2
195 2019-01-03 00:45:00    0.2
196 2019-01-03 01:00:00    0.4

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

以小时为间隔插入15分钟的日期时间

如何将csv中缺少的日期(间隔为15分钟)点存储到新文件中(间隔为15分钟)-python 3.5

如何使bootstrap-datetimepicker显示间隔为15分钟的时间

从python pandas中的15分钟间隔数据中提取每小时数据

如何创建间隔为1分钟的28小时制的表格?

如何将15分钟数据转换为每小时以熊猫为单位的时间?

如何计算以每个日期的持续时间和15分钟的间隔记录的用户

如何将5分钟数据框过滤为15分钟数据框?

如何在SQL Server中以5分钟间隔对datetime进行分区?

如何将unix时间戳记时间间隔为10分钟?

如何获得X日期的最小间隔为1分钟?

Excel公式将4.15解释为4小时15分钟

如果前后1分钟或2分钟,如何舍入到最接近的5分钟间隔?

Oracle将timestamp列归类为15分钟存储桶

睡到接下来的15分钟每小时间隔(00:00,00:15,00:30,00:45)

如何添加新的5分钟间隔

如何将行分为10分钟间隔?

如何获得每5分钟的间隔记录?

Python csv:将具有毫秒值的datetime列分组,间隔为15分钟,并添加一个带有时间段名称的新csv列

如何延迟15分钟?5分钟限制

每5分钟对字母数字数据进行分组-Pandas DataFrame

如何以 15 分钟的间隔对分钟进行分组

将pandas数据框中的多列转换为时间戳-舍入到最接近的15分钟间隔

R:对于数据帧中的两列数据,平均每小时15分钟的数据

如何用列迭代填充Pandas Dataframe

Informix日期时间:如何减去15分钟

如何创建等于15分钟前的DateTime?

如何将时间增加15分钟

如何每15分钟运行一次android函数,尤其是每天15分钟?