Python Pandas: 插入日期时间
Python Pandas: interpolate datetimes
假设我有以下数据框:
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]
= Timestamp('2019-05-23 15:40:17')
我可以在不使用循环查找缺失值的情况下执行此操作吗?
我尝试将日期时间列转换为时间戳,进行插值,然后再转换回来。不幸的是,所有日期都转换不正确,我最终得到了 1970 年代的日期。
您可以将日期时间列转换为其浮点表示形式(自 1970 年 1 月 1 日以来的纳秒),对这些进行插值,然后转换回日期时间,例如
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())
df
values date
0 5 2019-05-23 15:39:45
1 6 2019-05-23 15:40:17
2 7 2019-05-23 15:40:49
假设我有以下数据框:
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]
= Timestamp('2019-05-23 15:40:17')
我可以在不使用循环查找缺失值的情况下执行此操作吗?
我尝试将日期时间列转换为时间戳,进行插值,然后再转换回来。不幸的是,所有日期都转换不正确,我最终得到了 1970 年代的日期。
您可以将日期时间列转换为其浮点表示形式(自 1970 年 1 月 1 日以来的纳秒),对这些进行插值,然后转换回日期时间,例如
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())
df
values date
0 5 2019-05-23 15:39:45
1 6 2019-05-23 15:40:17
2 7 2019-05-23 15:40:49