Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex' and I can't figure out why

I've this dataframe in pandas

        key                              date  story_point  Story point
0   SOF-158  2019-06-04 09:51:01.143000+02:00          3.0          3.0
1   SOF-152  2019-05-24 09:10:23.483000+02:00          3.0          3.0
2   SOF-151  2019-05-24 09:10:14.978000+02:00          3.0          3.0
3   SOF-150  2019-05-24 09:10:23.346000+02:00          3.0          3.0
4   SOF-149  2019-05-24 09:10:23.024000+02:00          3.0          3.0
5   SOF-148  2019-05-24 09:10:23.190000+02:00          3.0          3.0
6   SOF-146  2019-05-24 09:10:22.840000+02:00          5.0          5.0
7   SOF-142  2019-04-15 10:50:03.946000+02:00          2.0          2.0
8   SOF-141  2019-03-29 10:54:08.677000+01:00          2.0          2.0
9   SOF-139  2019-04-15 10:44:56.033000+02:00          3.0          3.0
10  SOF-138  2019-04-15 10:48:53.874000+02:00          3.0          3.0
11  SOF-129  2019-03-28 11:56:17.221000+01:00          5.0          5.0
12  SOF-128  2019-03-29 11:34:47.552000+01:00          1.0          1.0
13  SOF-106  2019-03-25 10:15:43.231000+01:00          5.0          5.0
14  SOF-105  2019-03-25 10:15:43.252000+01:00          3.0          3.0
15  SOF-103  2019-03-29 11:55:45.984000+01:00          8.0          8.0
16  SOF-102  2019-03-25 10:15:43.210000+01:00          8.0          8.0
17  SOF-101  2019-03-25 10:15:43.179000+01:00          8.0          8.0
18  SOF-100  2019-03-29 12:08:16.525000+01:00         13.0         13.0
19   SOF-99  2019-03-19 12:48:58.168000+01:00          1.0          1.0
20   SOF-98  2019-03-19 12:47:28.172000+01:00         13.0         13.0
21   SOF-91  2019-03-08 11:53:19.456000+01:00          3.0          3.0
22   SOF-89  2019-04-05 09:32:39.517000+02:00          8.0          8.0
23   SOF-88  2019-03-25 10:15:42.927000+01:00          5.0          5.0
24   SOF-87  2019-04-05 09:32:25.519000+02:00          8.0          8.0

At certain point I need to groupby by week, so I used resample.

weekly_summary["story_point"] = df.story_point.resample('W').sum()

But I have this error, and I can't figure out why

Traceback (most recent call last):
  File "main.py", line 98, in <module>
    main()
  File "main.py", line 44, in main
    analyze_project(project)
  File "main.py", line 70, in analyze_project
    weekly_summary["story_point"] = df.story_point.resample('W').sum()
  File "/Users/xxxx/anaconda/envs/xxx/lib/python3.6/site-packages/pandas/core/generic.py", line 8449, in resample
    level=level,
  File "/Users/xxx/anaconda/envs/xxx/lib/python3.6/site-packages/pandas/core/resample.py", line 1306, in resample
    return tg._get_resampler(obj, kind=kind)
  File "/Users/xxx/anaconda/envs/xxxx/lib/python3.6/site-packages/pandas/core/resample.py", line 1443, in _get_resampler
    "but got an instance of %r" % type(ax).__name__
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'
like image 330
Stefano Avatar asked Aug 29 '19 05:08

Stefano


1 Answers

Convert column date to datetimes and add parameter on to resample:

df['date'] = pd.to_datetime(df['date'])
weekly_summary = df.story_point.resample('W', on='date').sum()

If need new column:

weekly_summary['weekly'] = df.story_point.resample('W', on='date').transform('sum')

Or create DatetimeIndex:

df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date') 
weekly_summary = df.story_point.resample('W').sum()

If need new column:

weekly_summary['weekly'] = df.story_point.resample('W').transform('sum')
like image 180
jezrael Avatar answered Oct 15 '22 08:10

jezrael