GroupBy using TimeGrouper does not work
See original GitHub issueBUG: TimeGrouper not too friendly with other groups, e.g.
df.set_index('Date').groupby([pd.TimeGrouper('6M'),'Branch']).sum()
should work
Hi everybody,
I found two issues with TimeGrouper:
- TimeGrouper does not work at all:
Let’s take the following example:
df = pd.DataFrame({
‘Branch’ : ‘A A A A A B’.split(),
‘Buyer’: ‘Carl Mark Carl Joe Joe Carl’.split(),
‘Quantity’: [1,3,5,8,9,3],
‘Date’ : [
DT.datetime(2013,1,1,13,0),
DT.datetime(2013,1,1,13,5),
DT.datetime(2013,10,1,20,0),
DT.datetime(2013,10,3,10,0),
DT.datetime(2013,12,2,12,0),
DT.datetime(2013,12,2,14,0),
]})
gr = df.groupby(pd.TimeGrouper(freq=‘6M’))
def testgr(df): print df
gr.apply(testgr)
This will raise the Exception: “Exception: All objects passed were None”
- With previous Panda’s version it was not possible to combine TimeGrouper with another criteria such as “Branch” in my case.
Thank you very much
Andy
Issue Analytics
- State:
- Created 10 years ago
- Comments:20 (12 by maintainers)
Top Results From Across the Web
group by - TimeGrouper, pandas - Stack Overflow
The problem can be solved by adding closed = 'left' df.groupby(pd.TimeGrouper('6M', closed = 'left')).aggregate(numpy.sum).
Read more >GroupBy — pandas 1.5.2 documentation
GroupBy objects are returned by groupby calls: pandas.DataFrame.groupby() , pandas. ... Provide resampling when using a TimeGrouper. DataFrameGroupBy.sample ...
Read more >Python Examples of pandas.TimeGrouper - ProgramCreek.com
You can vote up the ones you like or vote down the ones you don't like, ... b = TimeGrouper('M') g = df.groupby(b)...
Read more >[Code]-Pandas: group with TimeGrouper-pandas
If you wish to use TimeGrouper , you should first set a Datetimeindex and then you can use any aggregating function - e.g....
Read more >Python – pandas: where is the documentation for TimeGrouper
The best use of pd.Grouper() is within groupby() when you're also grouping on non-datetime-columns. If you just need to group on a frequency,...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
You need to set_index as TimeGrouper operates on the index
If you return a custom function then you need to handle the string cases, but you can return pretty much anything you want (make it a Series) to get this kind of functionaility, you function is passed a slice of the original frame