James Huang
James Huang

Reputation: 61

column names setup after group by the data in python

My table is as bellowed

datetime    source  Day area    Town    County  Country
0   2019-01-01 16:22:46 1273    Tuesday Brighton    Brighton    East Sussex England
1   2019-01-02 09:33:29 1823    Wednesday   Taunton Taunton Somerset    England
2   2019-01-02 09:44:46 1977    Wednesday   Pontefract  Pontefract  West Yorkshire  England
3   2019-01-02 10:01:42 1983    Wednesday   Isle of Wight   NaN NaN NaN
4   2019-01-02 12:03:13 1304    Wednesday   Dover   Dover   Kent    England

My codes are

counts_by_counties = call_by_counties.groupby(['County','Town']).count()
counts_by_counties.head()

My grouped result (Do the column name disappeared?)

                            datetime    source  Day    area  Country
County            Town                  
Aberdeenshire   Aberdeen            8       8      8    8       8
                Banchory            1       1      1    1       1
                Blackburn          18      18     18   18      18
                Ellon               6       6      6    6       6
                Fraserburgh         2       2      2    2       2

I used this codes to rename the column, I am wondering if there is other efficent way to change the column name.

# slicing of  the table 
counts_by_counties = counts_by_counties[['datetime',]]
# rename by datetime into Counts
counts_by_counties.rename(columns={'datetime': 'Counts'})

Expected result

                            Counts
County            Town  
Aberdeenshire   Aberdeen    8
                Banchory    1
                Blackburn   18

Upvotes: 0

Views: 41

Answers (1)

Aaj Kaal
Aaj Kaal

Reputation: 1284

Call reset_index as below. Replace

counts_by_counties = call_by_counties.groupby(['County','Town']).count()

with

counts_by_counties = call_by_counties.groupby(['County','Town']).count().reset_index()

Upvotes: 1

Related Questions