CDA打卡活动-Python数据分析极简入门3

课时7 Pandas数学计算

1. 聚合计算:聚合计算是指对数据进行汇总和统计的操作,常用的聚合计算方法包括计算均值、求和、最大值、最小值、计数等

df['a'].cumsum() # 累计求和

df['a'].cumprod() # 累计求积

2. 按行、列聚合计算:

df.sum(axis=0) # 按列求和汇总到最后一行

df.sum(axis=1) # 按行求和汇总到最后一列

df.describe() # 输出常用的描述性统计量

3. agg函数:

(1)对整个数据框df批量使用多个聚合函数

df.agg(['sum', 'mean', 'max', 'min', 'median'])

(2)对df的某些列应用不同的聚合函数(未应用某个函数,则对应的结果为NaN)

df.agg({'a': ['max', 'min'], 'b':['sum', 'mean'], 'c':['median']})

4. apply、applymap、map函数

这些函数可以对数据运用指定的函数,括号里面可以是函数式、自定义函数(def)或者匿名函数(lambda)

(1)对数据框的数据进行按行或按列操作时用apply()

df.apply(lambda x: x.max()-x.min(), axis=1) # axis=1,按行计算,即每行输出一个值

df.apply(lamda x: x.max()-x.min(), axis=0) # 默认参数为axis=0,按列计算,每列输出一个值

(2)对数据框的每一个数据进行操作时用applymap(),返回结果仍是dataframe格式

df.applymap(lambda x: 1 if x>60 else 0) # 系统自动对每一个数据进行判断,判断之后输出结果

(3)对series的每一个数据进行操作时用map()

df['a'].map(lambda x: 1 if x>60 else 0)

(4)总结:

apply()函数可以在dataframe或series上应用自定义函数,可以在行或列上进行操作

applymap()函数只适用于dataframe,可以在每个元素上应用自定义函数

map()函数只适用于series,用于将每个元素映射到另一个值

课时8 Pandas合并连接

在pandas中,有多种方法可以合并和拼接数据,常用的方法包括append()、concat()、merge()

1. 追加(append)

append()函数用于将一个dataframe或series对象追加到另一个dataframe中

df1.append(df2, ignore_index=True)

2. 合并(concat)

concat()函数用于沿指定轴将多个对象(比如series、dataframe)堆叠在一起,可以沿行或列的方向进行拼接。

pd.concat([df1, df2], axis=0) # 上下拼接

pd.concat([df1, df2], axis=1) # 左右拼接

3. 连接(merge)

merge()函数用于根据一个或多个键将两个dataframe的行连接起来,类似SQL中的JOIN操作

(1)两个数据框拥有同样的列

pd.merge(df1, df2, how='inner') # 只保留完全一样的数据

pd.merge(df1, df2, how='outer') # 合并数据,重复值只保留一次

(2)两个数据框拥有不同的列,df1有A、B列,df2有B、C列

pd.merge(df1, df2, how='left', on="A") # 左连接,保留df1的全部行,A列值相同

pd.merge(df1, df2, how='right', on="A") # 左连接,保留df2的全部行,A列值相同

pd.merge(df1, df2, how='inner', on="A") # 内连接,只保留相同值

pd.merge(df1, df2, how='inner', on="A") # 外连接,保留所有值

小技巧:

df1[df1['A'].isin(df2['A])] #返回在df1中列'A'的值在df2中也存在的行

df1[~df1['A'].isin(df2['A])] #返回在df1中列'A'的值在df2中不存在的行

课时9 Pandas分组聚合

分组聚合(group by)分两步:

(1)先分组:根据某列数据的值分组——用groupby()对某列进行分组

(2)后聚合:对结果应用聚合函数进行计算——在agg()函数里应用聚合函数

1. 单列分组

(1)对单列分组后对其他列应用sum:

df.groupby('A').sum()

(2)对单列分组后对指定的列应用单个指定的聚合函数,并实现重命名:

df.groupby('A').agg({'C':'min'}).rename(columns={'C': 'C_min'})

(3)对单列分组后对不同的列应用不同的聚合函数:

df.groupby(['A']).agg({'C':'max','D':'min'}).rename(columns={'C': 'C_max','D': 'D_min'})

2. 两列分组

(1)对多列分组后应用sum聚合函数:

df.groupby(['A','B']).sum()

(2)对两列进行groupby分组后,都应用max聚合函数:

df.groupby(['A','B']).agg({'C':'max'}).rename(columns={'C': 'C_max'})

(3)对两列进行groupby分组后,分别应用max、min聚合函数:

df.groupby(['A','B']).agg({'C':'max','D':'min'}).rename(columns={'C': 'C_max','D': 'D_min'})

  • 34
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值