《动手学数据分析》第一章1.6

第一章:数据载入及初步观察

复习:在前面我们已经学习了Pandas基础,知道利用Pandas读取csv数据的增删查改,今天我们要学习的就是探索性数据分析,主要介绍如何利用Pandas进行排序、算术计算以及计算描述函数describe()的使用。

1 第一章:探索性数据分析

开始之前,导入numpy、pandas包和数据


import numpy as np
import pandas as pd

df = pd.read_csv('train_chinese.csv')

1.6.1 任务一:利用Pandas对示例数据进行排序,要求升序

【问题】:大多数时候我们都是想根据列的值来排序,所以将你构建的DataFrame中的数据根据某一列,升序排列.

排序的函数是sort_index.

《动手学数据分析》第一章1.6
错误示范:
《动手学数据分析》第一章1.6
提示是
TypeError: sort_index() got an unexpected keyword argument ‘by’,

问题原因分析:pandas模块更新了,对有些方法进行重写,参数发生改变。

解决方法:将sort_index()改为sort_values()即可。


df.sort_values(by = ['年龄']).head()

【总结】下面将不同的排序方式做一个总结
1.让行索引升序排序


df.sort_index(axis=1).head()

2.让列索引升序排序


df.sort_index(axis=0).head()

3.让列索引降序排序


df.sort_index(axis=0,ascending=False).head()

Pandas-排序函数sort_values()


df.sort_values(by = ['票价','年龄'],ascending=False).head(20)

4.让任选两列数据同时降序排序


df.sort_values(by = ['年龄','是否幸存'],ascending=False).head()

1.6.2 任务二:对泰坦尼克号数据(trian.csv)按票价和年龄两列进行综合排序(降序排列),从这个数据中你可以分析出什么?

在开始我们已经导入了train_chinese.csv数据,而且前面我们也学习了导入数据过程,根据上面学习,我们直接对目标列进行排序即可
head(20) : 读取前20条数据


df.sort_values(by = ['票价','年龄'],ascending=False).head(20)

《动手学数据分析》第一章1.6

【思考】排序后,如果我们仅仅关注年龄和票价两列。根据常识我知道发现票价越高的应该客舱越好,所以我们会明显看出,票价前20的乘客中存活的有14人,这是相当高的一个比例,那么我们后面是不是可以进一步分析一下票价和存活之间的关系,年龄和存活之间的关系呢?当你开始发现数据之间的关系了,数据分析就开始了。

多做几个数据的排序


df.sort_values(by = ['仓位等级','年龄'],ascending=True).head(20)

《动手学数据分析》第一章1.6
【思考】排序后,如果我们仅仅关注年龄和船仓两列。我们会明显看出,票价前20的乘客中存活的有16人,这是相当高的一个比例。所以,船舱和年龄之间肯定是有一定的联系

1.6.3 任务三:利用Pandas进行算术计算,计算两个DataFrame数据相加结果


frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3),
                     columns=['a', 'b', 'c'],
                     index=['one', 'two', 'three'])

frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3),
                     columns=['a', 'e', 'c'],
                     index=['first', 'one', 'two', 'second'])

frame1_a = frame1_a + frame1_b

1.6.4 任务四:通过泰坦尼克号数据如何计算出在船上最大的家族有多少人?


df.sort_values(by = ['兄弟姐妹个数','父母子女个数'],ascending=False).head(20)

【提醒】我们只需找出”兄弟姐妹个数”和”父母子女个数”之和最大的数,当然你还可以想出很多方法和思考角度,欢迎你来说出你的看法。

如果我们想看看在船上,最大的家族有多少人(’兄弟姐妹个数’+’父母子女个数’),我们该怎么做呢?


df["最大家族人数"]=df["兄弟姐妹个数"]+df["父母子女个数"]
df.sort_values(by = ['最大家族人数'],ascending=False).head(20)

1.6.6 任务六:分别看看泰坦尼克号数据集中 票价、父母子女 这列数据的基本统计数据,你能发现什么?


df["票价"].describe()

count    891.000000
mean      32.204208
std       49.693429
min        0.000000
25%        7.910400
50%       14.454200
75%       31.000000
max      512.329200
Name: 票价, dtype: float64
df["父母子女个数"].describe()
count    891.000000
mean       0.381594
std        0.806057
min        0.000000
25%        0.000000
50%        0.000000
75%        0.000000
max        6.000000
Name: 父母子女个数, dtype: float64

Original: https://blog.csdn.net/weixin_43793761/article/details/121920768
Author: _Wade_Li
Title: 《动手学数据分析》第一章1.6

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/751811/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球