暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python数据分析笔记#10.2.2 Pandas对不同的列应用不同的函数

Yuan的学习笔记 2022-05-04
240




「目录」

数据聚合与分组运算

Data Aggregation and Group Operations

  • 10.1 => GroupBy机制

  • 10.2 => 数据聚合

  • 10.3 => apply:拆分 - 应用 - 合并

  • 10.4 => 透视表和交叉表

这篇笔记还是接着上篇数据聚合的内容讲的,上篇内容写了如何使用groupby对数据分组,然后应用min、max、std等聚合的方法。

这篇呢,拓展了以下内容:

  • 如何改变列名
  • 如何对不同的列应用不同的函数

下面是本篇笔记需要用到的库

import numpy as np
import pandas as pd

复制

还是前面原书举过的一个小费的例子。使用read_csv读取csv数据,添加一个小费百分比的的列tip_pct:

tips = pd.read_csv(r'.\tips.csv')

tips['tip_pct'] = tips['tip'] / tips['total_bill']

tips.head()

复制


我们根据'day'和'smoker'来分组,然后查看分组后的平均小费百分比

grouped = tips.groupby(['day''smoker'])

grouped_pct = grouped['tip_pct']

grouped_pct.agg('mean')

复制


如何改变列名

若我们传入一个元组组成的列表,每个元组的第一个元素就会被用作DataFrame列名:

grouped_pct.agg([('mean_pct''mean'), ('median_pct''median')])

复制


如何对不同的列应用不同的函数

若我们想要对不同的列应用不同的函数,我们可以向agg传入一个从列名映射到函数的字典

grouped.agg({'tip' : np.max, 'size' : 'sum'})

复制


grouped.agg({'tip_pct' : ['min', 'max', 'mean', 'std'], 'size' : 'sum'})
复制

那就这样吧,BYE-BYE


-END-


往期回顾


Pandas数据聚合




Stay hungry, stay foolish



文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论