Pandas 按列值拆分 DataFrame

作者:编程家 分类: pandas 时间:2025-06-20

Pandas 按列值拆分 DataFrame

在数据分析和数据处理中,经常需要根据某一列的值将 DataFrame 拆分成多个子 DataFrame。Pandas 是一个强大的数据处理库,它提供了丰富的功能来处理和操作数据。本文将介绍如何使用 Pandas 按列值拆分 DataFrame,并提供相应的案例代码。

案例代码

python

import pandas as pd

# 创建一个示例 DataFrame

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'Age': [25, 30, 35, 40, 45],

'City': ['New York', 'London', 'Paris', 'Tokyo', 'Sydney']}

df = pd.DataFrame(data)

# 按 City 列的值拆分 DataFrame

grouped = df.groupby('City')

# 遍历每个分组并输出

for city, group in grouped:

print(f"City: {city}")

print(group)

print()

以上代码首先创建了一个示例 DataFrame,包含了 Name、Age 和 City 三列数据。然后使用 `groupby` 方法按 City 列的值将 DataFrame 拆分成多个分组。最后,使用 `for` 循环遍历每个分组,并输出分组的内容。

在上述代码中,我们使用 `groupby` 方法将 DataFrame 按 City 列的值进行分组。`groupby` 方法会返回一个 `GroupBy` 对象,我们可以在该对象上进行进一步的操作。然后,使用 `for` 循环遍历每个分组,其中 `city` 变量表示分组的值,`group` 变量表示分组对应的子 DataFrame。

接下来,让我们看一下使用 Pandas 按列值拆分 DataFrame 的更多应用场景。

根据不同条件拆分 DataFrame

除了按某一列的值拆分 DataFrame 外,我们还可以根据不同的条件拆分 DataFrame。例如,我们可以根据 Age 列的值将 DataFrame 拆分成两个子 DataFrame,一个包含小于等于 30 岁的数据,另一个包含大于 30 岁的数据。

下面是相应的代码示例:

python

# 根据 Age 列的值拆分 DataFrame

grouped = df.groupby(df['Age'] > 30)

# 遍历每个分组并输出

for is_above_30, group in grouped:

print(f"Above 30: {is_above_30}")

print(group)

print()

在以上代码中,我们使用 `groupby` 方法将 DataFrame 按 `df['Age'] > 30` 的条件进行分组。`groupby` 方法会根据条件的 True/False 值将 DataFrame 拆分成两个分组。然后,使用 `for` 循环遍历每个分组,其中 `is_above_30` 变量表示分组的条件,`group` 变量表示分组对应的子 DataFrame。

通过本文,我们学习了如何使用 Pandas 按列值拆分 DataFrame,并提供了相应的案例代码。我们可以根据某一列的值将 DataFrame 拆分成多个子 DataFrame,也可以根据不同的条件拆分 DataFrame。这些功能可以帮助我们更好地处理和分析数据。

Pandas 提供了许多强大的数据处理和分析工具,深入了解和掌握 Pandas 可以提升我们的数据处理能力和工作效率。希望本文对您有所帮助,谢谢阅读!