Splitting a Pandas DataFrame Based on Column Values Using Groupby
This article presents a solution to the challenge of splitting a DataFrame into multiple parts based on unique values within a specific column.
Consider the following DataFrame:
import pandas as pd df = pd.DataFrame({ "N0_YLDF": [6.286333, 6.317000, 6.324889, 6.320667, 6.325556, 6.359000, 6.359000, 6.361111, 6.360778, 6.361111], "ZZ": [2, 6, 6, 5, 5, 6, 6, 7, 7, 6], "MAT": [11.669069, 11.669069, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454] })
The goal is to create a new DataFrame that has multiple columns for the "N0_YLDF" column, with each column corresponding to a unique value in the "ZZ" column. To achieve this, we can utilize the groupby() function.
grouped_df = df.groupby("ZZ")
The groupby() function creates a pandas.core.groupby.groupby.DataFrameGroupBy object, which represents the DataFrame with the groups split according to the values in the specified column. In this case, we have four groups:
print(grouped_df.groups) # Output {2: [0], 6: [1, 2, 5, 6, 9], 5: [3, 4], 7: [7, 8]}
To obtain the individual DataFrames for each group, we can use list comprehension:
split_dfs = [grouped_df.get_group(key) for key in grouped_df.groups]
The get_group() method returns a DataFrame that contains the rows belonging to the specified group.
The resulting split_dfs list contains four DataFrames, each representing a different value in the "ZZ" column.
For example, to access the DataFrame for the group with "ZZ" value of 6, you can use:
split_df_6 = split_dfs[1]
This will give you a DataFrame with the following rows:
N0_YLDF ZZ MAT 1 6.317000 6 11.669069 2 6.324889 6 11.516454 5 6.359000 6 11.516454 6 6.359000 6 11.516454 9 6.361111 6 11.516454
By utilizing the groupby() function and the get_group() method, you can effectively split a DataFrame into multiple parts based on the values in a specified column.
The above is the detailed content of How to Split a Pandas DataFrame into Multiple DataFrames Based on a Column's Unique Values?. For more information, please follow other related articles on the PHP Chinese website!