How to move pandas data from index to column after multiple groupby
Method #1: reset_index()
>>> g
uses books
sum sum
token year
xanthos 1830 3 3
1840 3 3
1868 2 2
1875 1 1
[4 rows x 2 columns]
>>> g = g.reset_index()
>>> g
token year uses books
sum sum
0 xanthos 1830 3 3
1 xanthos 1840 3 3
2 xanthos 1868 2 2
3 xanthos 1875 1 1
[4 rows x 4 columns]
Method #2: don't make the index in the first place, using as_index=False
>>> g = dfalph[['token', 'year', 'uses', 'books']].groupby(['token', 'year'], as_index=False).sum()
>>> g
token year uses books
0 xanthos 1830 3 3
1 xanthos 1840 3 3
2 xanthos 1868 2 2
3 xanthos 1875 1 1
[4 rows x 4 columns]
pandas groupby multiple columns gives weird index behavior
When we try to groupby
is we do not want the groupby
key as index
, we can pass to the as_index=False
key1_sum = df1.groupby([0,1,2,3,4,5],as_index=False).sum()
How to convert index of a pandas dataframe into a column
either:
df['index1'] = df.index
or, .reset_index
:
df = df.reset_index(level=0)
so, if you have a multi-index frame with 3 levels of index, like:
>>> df
val
tick tag obs
2016-02-26 C 2 0.0139
2016-02-27 A 2 0.5577
2016-02-28 C 6 0.0303
and you want to convert the 1st (tick
) and 3rd (obs
) levels in the index into columns, you would do:
>>> df.reset_index(level=['tick', 'obs'])
tick obs val
tag
C 2016-02-26 2 0.0139
A 2016-02-27 2 0.5577
C 2016-02-28 6 0.0303
pandas groupby without turning grouped by column into index
df.groupby(['col2','col3'], as_index=False).sum()
Pandas dataframe columns after groupby
Specify parameter as_index=False
while grouping:
df.groupby('Names', as_index=False).agg(
{'Column1':'sum', 'Column2':'sum','Column3':'min'})
Names Column1 Column2 Column3
0 Bob 3 3 2011
1 John 4 5 2005
2 Pier 1 1 2003
Turn Pandas Multi-Index into column
The reset_index() is a pandas DataFrame method that will transfer index values into the DataFrame as columns. The default setting for the parameter is drop=False (which will keep the index values as columns).
All you have to do call .reset_index()
after the name of the DataFrame:
df = df.reset_index()
How to keep original index of a DataFrame after groupby 2 columns?
I think you are are looking for transform in this situation:
df['count'] = df.groupby(['col1', 'col2'])['col3'].transform('count')
Pandas: How to remove the index column after groupby and unstack?
An alternative to your solution, but the key is just to add a rename_axis(columns = None)
, as the date
is the name for the columns axis:
(example[["date", "customer", "sales"]]
.groupby(["date", "customer"])
.sum()
.unstack("date")
.droplevel(0, axis="columns")
.rename_axis(columns=None)
.reset_index())
customer 2016-12 2017-01 2017-02
0 123 10.5 6.8 29.5
1 456 25.2 23.4 33.9
Converting a Pandas GroupBy output from Series to DataFrame
g1
here is a DataFrame. It has a hierarchical index, though:
In [19]: type(g1)
Out[19]: pandas.core.frame.DataFrame
In [20]: g1.index
Out[20]:
MultiIndex([('Alice', 'Seattle'), ('Bob', 'Seattle'), ('Mallory', 'Portland'),
('Mallory', 'Seattle')], dtype=object)
Perhaps you want something like this?
In [21]: g1.add_suffix('_Count').reset_index()
Out[21]:
Name City City_Count Name_Count
0 Alice Seattle 1 1
1 Bob Seattle 2 2
2 Mallory Portland 2 2
3 Mallory Seattle 1 1
Or something like:
In [36]: DataFrame({'count' : df1.groupby( [ "Name", "City"] ).size()}).reset_index()
Out[36]:
Name City count
0 Alice Seattle 1
1 Bob Seattle 2
2 Mallory Portland 2
3 Mallory Seattle 1
Related Topics
High-Precision Clock in Python
Split a String to Even Sized Chunks
Convert Row to Column Header for Pandas Dataframe,
How to Reverse Lists in Python, Getting "Nonetype" as List
What's a Faster Operation, Re.Match/Search or Str.Find
Stop/Start/Pause in Python Matplotlib Animation
Pil Thumbnail Is Rotating My Image
Syntaxerror Inconsistency in Python
Why Sum on Lists Is (Sometimes) Faster Than Itertools.Chain
How to Do Assignments in a List Comprehension
How to Randomly Choose a Maths Operator and Ask Recurring Maths Questions with It
Flask at First Run: Do Not Use the Development Server in a Production Environment
Python Pip Specify a Library Directory and an Include Directory
Run Child Processes as Different User from a Long Running Python Process