Home > Backend Development > Python Tutorial > How to Group DataFrame Rows and Create Lists of Values Using Pandas?

How to Group DataFrame Rows and Create Lists of Values Using Pandas?

Mary-Kate Olsen
Release: 2024-12-17 20:54:10
Original
889 people have browsed it

How to Group DataFrame Rows and Create Lists of Values Using Pandas?

How to Transform Dataframe Rows into Grouped Lists Using Pandas Groupby

Problem:

Given a DataFrame with multiple columns, the goal is to group rows based on a specific column (e.g., the first column) and gather values from another column (e.g., the second column) into lists within each group. For example:

Original DataFrame:

a b
A 1
A 2
B 5
B 5
B 4
C 6

Desired Outcome:

a new
A [1, 2]
B [5, 5, 4]
C [6]

Solution:

To achieve this outcome, pandas' groupby function can be utilized along with the apply() method to convert each group into a list.

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'a': ['A', 'A', 'B', 'B', 'B', 'C'], 'b': [1, 2, 5, 5, 4, 6]})

# Group by the "a" column and create lists of "b" values
grouped_list = df.groupby('a')['b'].apply(list)

# Reset the index to obtain a DataFrame
df1 = grouped_list.reset_index(name='new')
Copy after login

Explanation:

  • groupby('a'): Groups the DataFrame by the "a" column.
  • apply(list): Applies the list() function to each group, converting the "b" values into lists.
  • reset_index(name='new'): Resets the index and assigns the new column name "new" to the grouped lists.

The resulting DataFrame, df1, will contain the desired grouped lists:

   a        new
0  A     [1, 2]
1  B  [5, 5, 4]
2  C        [6]
Copy after login

The above is the detailed content of How to Group DataFrame Rows and Create Lists of Values Using Pandas?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template