Home >Backend Development >Python Tutorial >How to Split a Pandas DataFrame into Multiple DataFrames Based on a Column's Unique Values?

How to Split a Pandas DataFrame into Multiple DataFrames Based on a Column's Unique Values?

Susan Sarandon
Susan SarandonOriginal
2024-12-12 15:29:11797browse

How to Split a Pandas DataFrame into Multiple DataFrames Based on a Column's Unique Values?

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!

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