如何用python中的上一行或下一行填充缺少的行
我有这样的样本数据如何用python中的上一行或下一行填充缺少的行,python,pandas,Python,Pandas,我有这样的样本数据 date time option_type open high low close volume 6031 9/27/2018 09:17 CE 11500 0.15 0.15 0.15 0.15 1500 6131 9/27/2018 15:19 CE 11500 0.05 0.05 0.05 0.05 1500 6132 9/27/20
date time option_type open high low close volume
6031 9/27/2018 09:17 CE 11500 0.15 0.15 0.15 0.15 1500
6131 9/27/2018 15:19 CE 11500 0.05 0.05 0.05 0.05 1500
6132 9/27/2018 15:22 CE 11500 0.05 0.05 0.05 0.05 75
6133 9/27/2018 15:24 CE 11500 0.05 0.05 0.05 0.05 225
6134 9/27/2018 15:25 CE 11500 0.05 0.05 0.05 0.05 75
6135 9/27/2018 15:26 CE 11500 0.05 0.05 0.05 0.05 600
那边少了几行。例如09:15,09:16,然后是15:20,15:21等等
我希望在15:20/15:21时使用上一行值填充缺少的行,在09:15/09:16时使用下一行可用值填充缺少的行09:17值将用于09:15/09:1615:20值将用于15:21/15:22
你能帮我一下吗。提前感谢,并感谢您的努力和时间。我想您正在寻找这样的产品:
df['time']=df['time'].fillna(method="ffill") #to carry the values forward
df['time']=df['time'].fillna(method="bfill") #to carry the values backwards
df步骤1:查找连续行上的时间差:
df['deltaT'] = df.time.to_series().diff().dt.seconds.div(60, fill_value=0)
上面将为您提供一个新列,说明连续行之间的差异有多少分钟
步骤2:基于新列复制行deltaT
df.reindex(df.index.repeat(df.deltaT))
步骤3:构建逻辑以增加时间列
df['time'] = pd.to_timedelta(df['time']) + pd.to_timedelta(df['deltaT'], unit='m')
还在努力给你最后的部分
如果你觉得这很有帮助,并且可以在此基础上继续发展。太好了 您希望复制整行,但包含缺少值的时间字段除外。对吗?@RahulAgarwal,是的,没错。非常感谢你的时间。