估算缺失日期(YYYY-WW)

时间:2019-12-10 16:17:35

标签: python-3.x pandas

我有一个如下所示的数据框,我需要在缺少或省略日期的地方插入行(请注意,这是每周的日期):

A           B         C
'alpha'    2006-01    12
'beta'     2006-02    4
'kappa'    2006-04    2

所需结果如下:

A           B         C
'alpha'    2006-01    12
'beta'     2006-02    4
'gamma'    2006-03    0
'kappa'    2006-04    2

能做到吗?

2 个答案:

答案 0 :(得分:3)

使用to_datetimeresample每周YYYY-WW固定NaN值,以# Set index to datetime - based on yyyy-ww format (the '-1' makes weeks start Monday) df.index = pd.to_datetime(df['B'] + '-1', format='%Y-%W-%w') # Resample to weekly - Monday start df_new = df.resample('W-MON').first().fillna(0) # Correct format of 'B' column back to yyyy-ww df_new['B'] = df_new.index.strftime('%Y-%W') # Optional step to reset index df_new.reset_index(drop=True, inplace=True) print(df_new) 格式创建索引。这是指向python strftimes

的有用链接
         A        B     C
0  'alpha'  2006-01  12.0
1   'beta'  2006-02   4.0
2        0  2006-03   0.0
3  'kappa'  2006-04   2.0

[出]

Bash

答案 1 :(得分:1)

具有足够填充功能的用户resample()。更新:

df['B'] = pd.to_datetime(df['B'])
df = df.set_index('B').resample('1D').asfreq().reset_index()

然后,您可以为每个特定列重新填写NA。