Python 数据分析5:Pandas DataFrame数据的合并、分组聚合

1. 数据合并

df1.join(df2) 把行索引相同的数据合并到一起,缺少的填NaN

df1.merge(df3, on='a') 相当于SQL中的连表查询,按a列相同的属性连接 参数how='outer'外连接 left左连接 right右连接

 2. 分组聚合案例:星巴克

统计美国和中国的星巴克数量,显示中国每个省份星巴克数量的情况

链接:https://pan.baidu.com/s/1fFeNmrNf1Ug0CLDS3v80zw
提取码:nlhp

 df.groupby(by="xx") 按照xx列分组,并可以进行聚合函数的计算

import pandas as pd

starbucks_df = pd.read_csv("starbucks_store_worldwide.csv")
starbucks_count = starbucks_df.groupby(by="Country")["Brand"].count()
print(starbucks_count["CN"])
print(starbucks_count["US"])

china_data = starbucks_df.groupby(by=["Country", "State/Province"])["Brand"].count()["CN"]
print(china_data)

3. 索引和复合索引

df.index 获取/指定索引

df.set_index("xx") 指定某一列为索引

4. 案例:图书

统计不同年份书的数量和平均评分情况

链接:https://pan.baidu.com/s/1vn6ofoLvql8w84XfDIN01w
提取码:le60

import pandas as pd
books_df = pd.read_csv("books.csv")

year_count = books_df.groupby(by="original_publication_year")["id"].count()
print(year_count)

average_rating = books_df.groupby(by="original_publication_year")["average_rating"].mean()
print(average_rating)

5. 透视表、交叉表

5.1 透视表

透视表可以动态地排布数据动态并且分类汇总,以便按照不同方式分析数据,也可以重新安排行号、列标。

pd.pivot_table(df,index=[],values=[],aggfunc=“xx”)

 5.2 交叉表

交叉表是用于计算分组频率的特殊透视表。

pd.crosstab(df['index'], df['columms'])

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hinomoto Oniko

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值