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