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
Release: 2024-12-12 15:29:11
Original
781 people have browsed it

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]
})
Copy after login

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")
Copy after login

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]}
Copy after login

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]
Copy after login

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]
Copy after login

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
Copy after login

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!

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