【发布时间】:2019-01-08 07:18:46
【问题描述】:
问题是我有一个大型数据集,其中缺少日期条目并且还重复。我不能删除它们中的任何一个,所以我需要添加缺失的日期并将相应的列设为 NaN。 这是它的示例代码。
df = pd.DataFrame({
'timestamps': pd.to_datetime(
['2016-11-15 1:00','2016-11-16 2:00','2016-11-16 3:00','2016-11-18 4:00']),
'values':['a','b','c','d']})
df.index = pd.DatetimeIndex(df['timestamps']).floor('D')
all_days = pd.date_range(df.index.min(), df.index.max(), freq='D')
在搜索时,我发现我们不应该使用df.reindex(),因为它无法处理重复项。所以另一种解决方案是使用
df.loc[all_days] 但是,每次我将它用作
df.loc[all_days] = [0,0] 它只是说我需要添加到数据框中的缺失日期不在索引中。
应该是这样的:
timestamps values
2016-11-15 "2016-11-15 01:00:00" a
2016-11-16 "2016-11-16 02:00:00" b
2016-11-16 "2016-11-16 03:00:00" c
2016-11-18 "2016-11-18 04:00:00" d`
到这里:
timestamps values
2016-11-15 "2016-11-15 01:00:00" a
2016-11-16 "2016-11-16 02:00:00" b
2016-11-16 "2016-11-16 03:00:00" c
2016-11-17 NaN NaN
2016-11-18 "2016-11-18 04:00:00" d
【问题讨论】:
标签: python pandas date duplicates time-series