У меня есть фрейм данных, который выглядит следующим образом

        AUX     TER
11/2014 2.0     10.0
01/2015 23.0    117.0
03/2015 57.0    65.0
04/2015 1.0     1.0
05/2015 16.0    20.0
07/2015 19.0    30.0

Я хочу заполнить значения для месяцев, которые не находятся в фрейме данных с 0, как это

        AUX     TER
11/2014 2.0     10.0
12/2014 0       0
01/2015 23.0    117.0
03/2015 57.0    65.0
04/2015 1.0     1.0
05/2015 16.0    20.0
06/2015 0       0
07/2015 19.0    30.0
2
Ali 25 Июн 2019 в 16:42

3 ответа

Вы можете использовать приведенное ниже для {{X0} } :

s=pd.to_datetime(df.index)
df.reindex(pd.date_range(s.min(),s.max()+pd.DateOffset(months=1),freq='M')
           .strftime('%m/%Y'),fill_value=0)

          AUX    TER
11/2014   2.0   10.0
12/2014   0.0    0.0
01/2015  23.0  117.0
02/2015   0.0    0.0
03/2015  57.0   65.0
04/2015   1.0    1.0
05/2015  16.0   20.0
06/2015   0.0    0.0
07/2015  19.0   30.0
2
anky_91 25 Июн 2019 в 13:49

Если у вас есть формат даты и времени, вы можете попробовать:

df.resample('MS').mean()

После этого поста: Python, суммируйте ежедневные данные в фрейме данных, чтобы ежемесячно и ежеквартально

0
PV8 25 Июн 2019 в 13:47

Используя df.resample("M").mean().fillna(0)

< Сильный > Пример:

df = pd.read_csv(filename, sep="\s+", parse_dates=['date'])
df.set_index("date", inplace=True)
df = df.resample("M").mean().fillna(0)
df.index = df.index.strftime("%m/%Y")

print(df)

< Сильный > Вывод :

          AUX    TER
11/2014   2.0   10.0
12/2014   0.0    0.0
01/2015  23.0  117.0
02/2015   0.0    0.0
03/2015  57.0   65.0
04/2015   1.0    1.0
05/2015  16.0   20.0
06/2015   0.0    0.0
07/2015  19.0   30.0
2
Rakesh 25 Июн 2019 в 13:52