楼主: casey_c
1234 1

[程序分享] 数据透视表 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.0091
学术水平
2 点
热心指数
15 点
信用等级
2 点
经验
11502 点
帖子
278
精华
0
在线时间
94 小时
注册时间
2016-11-22
最后登录
2022-5-2

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据透视表是我们在数据分析中常见的工具之一,本节将向大家介绍 Python 中数据透视表的构建与使用。
首先导入 Numpy 库、 Pandas 库、 Seanborn 库,以及本节的示例数据——一份泰坦尼克号乘客数据:
  1. import numpy as np
  2. import pandas as pd
  3. import seaborn as sns
  4. titanic = sns.load_dataset('titanic')
复制代码
  1. titanic.head()
复制代码
1.jpg
可以看到,我们的示例数据中包含了泰坦尼克号上每一个乘客的相关信息,包括是否生还、是否在世等等。
运用 Pandas 的 groupby 函数,我们可以用分组的思维构建一个数据透视表,例如查看不同性别的生还者占比:
  1. titanic.groupby('sex')[['survived']].mean()
复制代码
2.jpg
通过在 groupby 函数中传入指定的列名序列,我们就可以进行多维度下的数据透视,例如查看在不同舱位等级中男女的生还者占比(可以理解为生还的概率):
  1. titanic.groupby(['sex', 'class'])['survived'].aggregate('mean').unstack()
复制代码
3.jpg
Pandas 中的另一个函数 pivot_table 同样也能够帮助我们构建数据透视表,相比于 groupby 函数, pivot_table 在构建数据表格时更为直接,我们只需要指定表格的行列与元素的含义,便能够默认地得到对应的结果:
  1. titanic.pivot_table('survived', index='sex', columns='class')
复制代码
4.jpg
通过 cut 函数,我们将数据集 age 列中的元素归纳入不同的分组,由此构建新的序列 age,这个序列中的元素代表了对应乘客样本所属的年龄段。我们由此构建数据透视表,查看不同仓位等级下不同年龄段的男性与女性中的生还者占比:
  1. age = pd.cut(titanic['age'], [0, 18, 80])
  2. titanic.pivot_table('survived', ['sex', age], 'class')
复制代码
5.jpg
当然,我们还可以在列上为数据透视表增加维度,只要将 pivot_table 函数的第三个输入也改为指定的列表即可,例如我们可以同时查看一下票价高低对于生还概率的影响:
  1. fare = pd.qcut(titanic['fare'], 2)
  2. titanic.pivot_table('survived', ['sex', age], [fare, 'class'])
复制代码
6.jpg

以上转自 数析学院,原文内容较多,有需要的同学可以直接查看原文

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
casey_c 发表于 2017-3-8 16:38:52 |只看作者 |坛友微信交流群

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 11:48