python-3.x - Pandas .resample 或 .asfreq 填充缺失的日期时间条目
问题描述
我有一个看起来像这样的数据框:
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分钟”期间的任何一个都不会相应地修改数据帧。我怎样才能做到这一点?
解决方案
首先,让你的索引 adatetime
然后你可以使用.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
推荐阅读
- react-native - 如何阅读联系人 - 反应原生
- node.js - 使用 nginx 限制单个 websocket 连接
- php - 使用 Laravel单击元素时仅更改页面的一部分?
- mysql - 求和子集查询
- go - 如何使用 kubernetes client-go 将文件复制到容器?
- ruby-on-rails - 您如何在活动记录中围绕一个时间段进行分组,但每个用户只计算一次出现?
- python - 无法将页面从主页转移到关于页面
- javascript - 自动删除 Chart.js 中的旧数据点
- visual-studio-code - VS Code - 更改预测匹配字体颜色
- php - 按特定键的内部数组的值对 PHP 二维数组进行排序