I’m tring to use infer_freq and asfreq and the return data frame is empty
Original data set:
JavaScript
x
7
1
month interest
2
0 2004-01 13
3
1 2004-02 15
4
2 2004-03 17
5
3 2004-04 19
6
4 2004-05 22
7
Trying to convert the data with different frequency
JavaScript
1
4
1
ice_cream_interest = pd.read_csv('ice_cream_interest.csv')
2
ice_cream_interest.set_index('month', inplace=True)
3
ice_cream_interest = ice_cream_interest.asfreq(pd.infer_freq(ice_cream_interest.index))
4
JavaScript
1
14
14
1
interest
2
month
3
2004-01-01 NaN
4
2004-02-01 NaN
5
2004-03-01 NaN
6
2004-04-01 NaN
7
2004-05-01 NaN
8
9
2020-04-01 NaN
10
2020-05-01 NaN
11
2020-06-01 NaN
12
2020-07-01 NaN
13
2020-08-01 NaN
14
Advertisement
Answer
Given:
JavaScript
1
7
1
month interest
2
0 2004-01 13
3
1 2004-02 15
4
2 2004-03 17
5
3 2004-04 19
6
4 2004-05 22
7
Doing:
JavaScript
1
9
1
# Convert to datetime
2
df.month = pd.to_datetime(df.month)
3
4
# Set Index
5
df = df.set_index('month')
6
7
# Convert to freq
8
df = df.asfreq(pd.infer_freq(df.index))
9
Output:
JavaScript
1
14
14
1
>>> df
2
interest
3
month
4
2004-01-01 13
5
2004-02-01 15
6
2004-03-01 17
7
2004-04-01 19
8
2004-05-01 22
9
10
>>> df.index
11
DatetimeIndex(['2004-01-01', '2004-02-01', '2004-03-01', '2004-04-01',
12
'2004-05-01'],
13
dtype='datetime64[ns]', name='month', freq='MS')
14
We can see it successfully converted to a frequency index.