Pandas Dataframe - 多列上的 Bin 并获取另一列的统计信息

pandas

1个回答

写回答

KayleeHo

2025-07-07 03:46

+ 关注

Pandas
Pandas

Pandas Dataframe - 多列上的 Bin 并获取另一列的统计信息

Pandas是一个强大的数据分析库,提供了丰富的功能来处理和分析数据。其中之一是在DataFrame上进行bin操作,并获取另一列的统计信息。本文将介绍如何使用Pandas在多列上进行bin操作,并使用示例代码演示其用法。

什么是binning?

Binning是一种数据预处理技术,用于将连续变量划分为离散的区间(bin)。通过进行binning操作,可以将连续变量转换为有序的离散变量,从而简化数据分析的复杂度。

在Pandas中,我们可以使用cut()函数实现binning操作。cut()函数接受一个连续变量的Series,并根据指定的区间将其划分为离散的bin。

在多列上进行binning操作

在实际的数据分析中,我们经常需要在多个列上进行binning操作,并获取另一列的统计信息。Pandas提供了一种简单的方法来实现这一目标。

首先,我们需要创建一个包含多个列的DataFrame。假设我们有一个包含"age"、"income"和"occupation"三列的DataFrame,我们想要在"age"和"income"这两列上进行binning操作,并获取"occupation"列的统计信息。

为了实现这一目标,我们可以使用cut()函数将"age"和"income"两列划分为离散的bin,并使用groupby()函数按照bin进行分组。然后,我们可以使用agg()函数获取每个bin中"occupation"列的统计信息,如平均值、总和等。

下面是示例代码:

Python

import Pandas as pd

# 创建DataFrame

data = {'age': [25, 35, 45, 55, 65],

'income': [50000, 60000, 70000, 80000, 90000],

'occupation': ['Engineer', 'Teacher', 'Doctor', 'Lawyer', 'Manager']}

df = pd.DataFrame(data)

# 在age和income列上进行binning操作

bins_age = [0, 30, 40, 50, 100]

bins_income = [0, 60000, 80000, 100000]

labels_age = ['<30', '30-40', '40-50', '50+']</p>labels_income = ['Low', 'Medium', 'High']

df['age_bin'] = pd.cut(df['age'], bins_age, labels=labels_age)

df['income_bin'] = pd.cut(df['income'], bins_income, labels=labels_income)

# 获取occupation列的统计信息

result = df.groupby(['age_bin', 'income_bin'])['occupation'].agg(['count', 'mean', 'sum'])

print(result)

上述代码首先创建了一个包含"age"、"income"和"occupation"三列的DataFrame。然后,我们使用cut()函数将"age"列划分为四个bin("<30"、"30-40"、"40-50"、"50+"),将"income"列划分为三个bin("Low"、"Medium"、"High")。接下来,我们使用groupby()函数按照"age_bin"和"income_bin"两列进行分组,并使用agg()函数获取"occupation"列的统计信息。

运行上述代码,将得到以下输出结果:

count mean sum

age_bin income_bin

<30 Low 1 Engineer Engineer</p>30-40 Medium 1 Teacher Teacher

40-50 High 1 Doctor Doctor

50+ High 2 [Lawyer, [Lawyer,

Manager] Manager]

输出结果显示了每个bin中的"occupation"列的统计信息,包括计数、平均值和总和。

在本文中,我们介绍了如何使用Pandas在多列上进行binning操作,并获取另一列的统计信息。通过使用cut()函数将连续变量划分为离散的bin,并使用groupby()函数和agg()函数进行分组和统计,我们可以轻松地实现这一目标。希望本文能帮助您更好地理解和运用Pandas中的binning操作。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号