将丢失的日期从csv文件添加到时间序列中



我有一个变量"GWL"的月度时间序列,但缺少几个日期。

import pandas as pd
df = pd.read_csv(r'1218_29_0.csv')
df.head(5)
date        GWL
0   15/01/2001  9.73
1   15/08/2001  10.55
2   15/11/2001  11.65
3   15/01/2002  9.72
4   15/04/2002  9.92

我试过关注其他帖子,但没有一篇涉及CSV格式的数据库。

我如何添加缺失的日期(月(并按Nan填充其值?

我使用加载

df = pd.read_csv(io.StringIO('''date        GWL
15/01/2001  9.73
15/08/2001  10.55
15/11/2001  11.65
15/01/2002  9.72
15/04/2002  9.92'''), sep='s{2,}', engine='python', parse_dates=['date'])

您需要在代码中执行的操作就是将parse_dates=['date']参数传递给pd.read_csv。不要传递其他东西。我需要使用io.StringIO,因为您不会以构造函数格式提供数据。

这产生:

date    GWL
0 2001-01-15   9.73
1 2001-08-15  10.55
2 2001-11-15  11.65
3 2002-01-15   9.72
4 2002-04-15   9.92

构建以ID为中心的每月日期范围:

months = df['date'] - pd.offsets.MonthBegin()
d_range = pd.date_range(months.min(), months.max(), freq='M')
d_range = d_range - pd.offsets.MonthBegin() + pd.offsets.Day(14)

Reindex:

>>> df.set_index('date').reindex(d_range)
GWL
2001-01-15   9.73
2001-02-15    NaN
2001-03-15    NaN
2001-04-15    NaN
2001-05-15    NaN
2001-06-15    NaN
2001-07-15    NaN
2001-08-15  10.55
2001-09-15    NaN
2001-10-15    NaN
2001-11-15  11.65
2001-12-15    NaN
2002-01-15   9.72
2002-02-15    NaN
2002-03-15    NaN

最新更新