Python:插入日期时间
假设我有以下数据帧:Python:插入日期时间,python,pandas,datetime,interpolation,Python,Pandas,Datetime,Interpolation,假设我有以下数据帧: df = pd.DataFrame({'values': {0: 5, 1: 6, 2: 7}, 'date': {0: pd.Timestamp('2019-05-23 15:39:45'), 1: np.nan, 2: pd.Timestamp('2019-05-23 15:40:49')}}) 如何简单地将缺少的值作为两个值之间的时间进行插补?在本例中,该值为:(df.date[2]-df.date[0])/2+df.date[0]=时间戳('2019-0
df = pd.DataFrame({'values': {0: 5, 1: 6, 2: 7},
'date': {0: pd.Timestamp('2019-05-23 15:39:45'),
1: np.nan,
2: pd.Timestamp('2019-05-23 15:40:49')}})
如何简单地将缺少的值作为两个值之间的时间进行插补?在本例中,该值为:(df.date[2]-df.date[0])/2+df.date[0]
=时间戳('2019-05-23 15:40:17')
我可以在不使用循环查找缺失值的情况下执行此操作吗
我尝试将datetime列转换为时间戳、插值,然后再转换回时间戳。不幸的是,所有的日期转换都不正确,我最后得到的日期都是1970年代的。您可以将datetime列转换为其浮点表示形式(自1970-01-01以来的纳秒),对其进行插值,然后转换回datetime,例如
import pandas as pd
import numpy as np
df = pd.DataFrame({'values': {0: 5, 1: 6, 2: 7},
'date': {0: pd.Timestamp('2019-05-23 15:39:45'),
1: pd.Timestamp('NaT'),
2: pd.Timestamp('2019-05-23 15:40:49')}})
s = pd.Series(df['date'].values.astype(float))
s[s<0] = np.NaN
df['date'] = pd.to_datetime(s.interpolate())
您可以将datetime列强制转换为其浮点表示形式(自1970-01-01以来的纳秒数),对其进行插值,然后强制转换回datetime,例如
import pandas as pd
import numpy as np
df = pd.DataFrame({'values': {0: 5, 1: 6, 2: 7},
'date': {0: pd.Timestamp('2019-05-23 15:39:45'),
1: pd.Timestamp('NaT'),
2: pd.Timestamp('2019-05-23 15:40:49')}})
s = pd.Series(df['date'].values.astype(float))
s[s<0] = np.NaN
df['date'] = pd.to_datetime(s.interpolate())