python - 如何将 DatetimeIndexResamplerGroupby 对象转换为数据框?
问题描述
我想以 30 秒的间隔对具有时间序列数据的数据帧重新采样到 1 秒的间隔。为此,我使用了:
test_data=test_data.groupby('entity_id').resample('S', fill_method='ffill')
输出是:
<pandas.core.resample.DatetimeIndexResamplerGroupby object at 0x1a1f64f588>
如何将此对象转换为数据框?
我尝试过:
test_data = pd.DataFrame(test_data)
在运行最后一个命令后,它返回一个数据框,其中包含该行的索引和所有其他元素的列表。
解决方案
使用ffill
方法:
test_data = pd.DataFrame({
'entity_id': ['a','a','a','a','b','b','b','c','d'],
'data':range(9)},
index=pd.date_range('2018-01-01', periods=9, freq='3S'))
print (test_data)
entity_id data
2018-01-01 00:00:00 a 0
2018-01-01 00:00:03 a 1
2018-01-01 00:00:06 a 2
2018-01-01 00:00:09 a 3
2018-01-01 00:00:12 b 4
2018-01-01 00:00:15 b 5
2018-01-01 00:00:18 b 6
2018-01-01 00:00:21 c 7
2018-01-01 00:00:24 d 8
test_data=test_data.groupby('entity_id')['data'].resample('S').ffill()
print (test_data)
entity_id
a 2018-01-01 00:00:00 0
2018-01-01 00:00:01 0
2018-01-01 00:00:02 0
2018-01-01 00:00:03 1
2018-01-01 00:00:04 1
2018-01-01 00:00:05 1
2018-01-01 00:00:06 2
2018-01-01 00:00:07 2
2018-01-01 00:00:08 2
2018-01-01 00:00:09 3
b 2018-01-01 00:00:12 4
2018-01-01 00:00:13 4
2018-01-01 00:00:14 4
2018-01-01 00:00:15 5
2018-01-01 00:00:16 5
2018-01-01 00:00:17 5
2018-01-01 00:00:18 6
c 2018-01-01 00:00:21 7
d 2018-01-01 00:00:24 8
Name: data, dtype: int64
推荐阅读
- python - 用新输入填充空列表,而不是附加它
- pandas - 如何计算缺失日期的移位和滚动总和而不将它们添加到 Pandas 的数据框中?
- javascript - React - onClick() 事件不在地图功能中显示点击项目的信息
- apache-spark - 使用 Spark 按一列的连续相同值进行分组,每组取另一列的最大值或最小值
- python - 如何判断一个数是否为二进制?
- javascript - 过滤对象数组,其中字段不完整
- python - 为什么重新索引 pandas DataFrame 会给我一个空的 DataFrame?
- javascript - Firebase:获取数据在 React Native 中不起作用
- javascript - 如何确保我的函数一次只作用于一个元素?(转发更多细节)
- javascript - JavaScript:递归函数无法正确处理 Promise