MST

星途 面试题库

面试题:Python的Pandas库中多条件分组聚合及结果处理

给定一个DataFrame,有'城市'、'性别'、'年龄'、'收入'列。要求按'城市'和'性别'分组,计算每组的平均年龄和总收入,并且将平均年龄保留两位小数,将结果以新的DataFrame形式展示,新DataFrame的列名分别为'平均年龄'和'总收入'。
45.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

假设你使用的是Python的pandas库,代码如下:

import pandas as pd

# 假设df为已有的DataFrame
df = pd.DataFrame({
    '城市': ['北京', '北京', '上海', '上海'],
    '性别': ['男', '女', '男', '女'],
    '年龄': [25, 30, 28, 32],
    '收入': [5000, 6000, 5500, 7000]
})

result = df.groupby(['城市', '性别']).agg(
    平均年龄=('年龄','mean'),
    总收入=('收入','sum')
).reset_index()

result['平均年龄'] = result['平均年龄'].round(2)

print(result)

结果将会是一个新的DataFrame,列名分别为'城市'、'性别'、'平均年龄'和'总收入' 。如果你想要只展示'平均年龄'和'总收入'列,可以在最后加上:

result = result[['平均年龄', '总收入']]
print(result)

Markdown格式展示结果示例:

平均年龄总收入
25.005000
30.006000
28.005500
32.007000