【问题标题】:Pandas .resample or .asfreq to fill in missing datetime entriesPandas .resample 或 .asfreq 填充缺失的日期时间条目
【发布时间】:2019-02-21 12:57:36
【问题描述】:

我有一个如下所示的数据框:

import pandas as pd
d = {'TransactionId' : pd.Series([633025, 634560],index = ['2018-01-07 22:30:00', '2018-01-08 19:00:00']),
 'Value' : pd.Series([677.06, 677.44], index = ['2018-01-07 22:30:00', '2018-01-08 19:00:00'])}
df = pd.DataFrame(d)
df.head()

一旦 TransactionId 633025 完成,值将停止记录,直到下一个事务开始。我想在两次出现之间每 15 分钟添加一个日期时间索引值,TransactionId 为“NaN”,并向前填充 Value 列。我试过使用 .resample 和 .asfreq 没有​​任何运气;使用“15分钟”期间的任何一个都不会相应地修改数据帧。我该怎么做?

【问题讨论】:

    标签: python-3.x pandas datetime


    【解决方案1】:

    首先,将您的索引设为datetime,然后您可以使用.resample,然后再使用.ffill

    import pandas as pd
    
    df.index = pd.to_datetime(df.index)
    df = df.resample('15min').asfreq()
    df['Value'] = df['Value'].ffill()
    

    输出:

                         TransactionId   Value
    2018-01-07 22:30:00       633025.0  677.06
    2018-01-07 22:45:00            NaN  677.06
    2018-01-07 23:00:00            NaN  677.06
    2018-01-07 23:15:00            NaN  677.06
    2018-01-07 23:30:00            NaN  677.06 
    ...
    2018-01-08 18:00:00            NaN  677.06
    2018-01-08 18:15:00            NaN  677.06
    2018-01-08 18:30:00            NaN  677.06
    2018-01-08 18:45:00            NaN  677.06
    2018-01-08 19:00:00       634560.0  677.44
    

    【讨论】:

    • 好的,所以这非常适合我在问题中输入代码的方式;在实际脚本中,我调用 read_csv,并使用以下行设置索引:df.set_index('Timestamp', inplace = True)。由于某种原因,您的解决方案不再有效。知道它可能是什么吗?
    • @thepez87 你得到什么错误?是否某些时间戳无效或格式无法自动解析?也许在设置索引之前尝试df['Timestamp'] = pd.to_datetime(df.Timestamp),这样索引会正确设置为日期时间,然后删除上面的第一行。
    • 所以我尝试在将时间戳设置为索引之前将其设置为日期时间,但这无济于事。我实际上并没有收到错误,它只是什么都不做,即执行 .resample 后数据框的形状保持不变,即使它应该随着新填充的值而大大增加。
    • @thepez87 你确定用df = df.resample() 将它分配回来。默认情况下,它将返回一个副本,如果您不将其分配回df,您将永远不会真正更改DataFrame
    • 啊啊啊就是这样。谢谢!!
    猜你喜欢
    • 2018-08-29
    • 2015-04-14
    • 2022-12-21
    • 2022-08-15
    • 2021-09-03
    • 2021-06-17
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多