为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas/Python:查找时间序列中的缺失值,插入新的时间戳和缺失值的 nan 值

Pandas/Python:查找时间序列中的缺失值,插入新的时间戳和缺失值的 nan 值

慕森卡 2023-02-15 15:44:14
我创建了以下数据框:import pandas as pdd = {'T': [1, 2, 4, 15], 'H': [3, 4, 6, 8]}df = pd.DataFrame(data=d, index=['10.09.2018  13:15:00','10.09.2018  13:30:00', '10.09.2018  14:00:00', '10.09.2018  22:00:00'])df.index = pd.to_datetime(df.index)并得到如下结果。Out[30]:                       T  H2018-10-09 13:15:00   1  32018-10-09 13:30:00   2  42018-10-09 14:00:00   4  62018-10-09 22:00:00  15  8如您所见,在 13:45:00 缺少一个值,在 14:00 和 22:00 之间缺少很多值。有没有一种方法可以自动查找缺失值,插入带有缺失时间戳的行和缺失时间的 nan 值?我想实现这个:Out[30]:                       T  H2018-10-09 13:15:00   1  32018-10-09 13:30:00   2  42018-10-09 13:45:00  nan nan2018-10-09 14:00:00   4  62018-10-09 14:15:00  nan nan...2018-10-09 21:45:00  nan nan2018-10-09 22:00:00  15  8
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

您可以使用正确的时间步长创建第二个数据帧作为索引,并将其与原始数据连接起来。以下代码适用于我的情况


# your code

import pandas as pd


d = {'T': [1, 2, 4, 15], 'H': [3, 4, 6, 8]}

df = pd.DataFrame(data=d, index=['10.09.2018  13:15:00','10.09.2018  13:30:00', '10.09.2018  14:00:00', '10.09.2018  22:00:00'])

df.index = pd.to_datetime(df.index)


# generate second dataframe with needed index

timerange = pd.date_range('10.09.2018  13:15:00', periods=40, freq='15min')

df2 = pd.DataFrame(index=timerange)


# join the original dataframe with the new one

newdf = df.join(df2, how='outer')


查看完整回答
反对 回复 2023-02-15
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号