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
Mary-Kate OlsenOriginal
2024-12-17 20:54:10899browse

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')

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]

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!

Statement:
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