数据分析打卡01

数据载入及初步观察

以泰坦尼克号数据集为例
1、导入数据集
对于csv文件可以采用pd.read_csv()的方式,加载的时候需要加上文件的路径

#加载所需的库
import numpy as np
import pandas as pd
#载入之前保存的train_chinese.csv数据,关于泰坦尼克号的任务,我们就使用这个数据
text = pd.read_csv('train_chinese.csv')
text.head()   #查看数据形式,一般默认为前5个

数据集共有12列,目标变量Survived表示的是该乘客是否获救,1表示获救,0表示未获救。其余都是乘客的个人信息,包括:

PassengerId => 乘客ID
Pclass => 乘客等级(1/2/3等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 堂兄弟/妹个数
Parch => 父母与小孩个数
Ticket => 船票信息
Fare => 票价
Cabin => 客舱
Embarked => 登船港口(C/Q/S港口)
2、了解和分析数据
pandas对数据进行分析

pd.DataFrame() :创建一个DataFrame对象
np.arange(8).reshape((2, 4)) : 生成一个二维数组(2*4),第一列:0,1,2,3 第二列:4,5,6,7
index=['2, 1] :DataFrame 对象的索引列
columns=['d', 'a', 'b', 'c'] :DataFrame 对象的索引行

利用Pandas对示例数据进行排序,要求升序

#自己构建一个都为数字的DataFrame数据,并按照升序的方式进行排列
frame = pd.DataFrame(np.arange(8).reshape((2, 4)), 
 index=['2', '1'], 
 columns=['d', 'a', 'b', 'c'])
frame.sort_values(by='c', ascending=False)

注:sort_values这个函数中by参数指向要排列的列,ascending参数指向排序的方式(升序还是降序)
排序方式总结:

# 让行索引升序排序
frame.sort_index()

# 让列索引升序排序
frame.sort_index(axis=1)

# 让列索引降序排序
frame.sort_index(axis=1, ascending=False)

# 让任选两列数据同时降序排序
frame.sort_values(by=['a', 'c'])

对泰坦尼克号数据按票价和年龄两列进 行综合排序(降序排列)

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

在这里插入图片描述
2.1数据的描述性分析

#统计每一列的均值、最大值、最小值、分位数等
text.describe()

2.2变量分布统计

#1.获救情况分布,共891位乘客,仅有300多位乘客幸免于难,占比38%
text['Survived'].value_counts().plot(kind='bar',color='yellow',title='Rescue situation', rot=360)

在这里插入图片描述
利用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

在这里插入图片描述
在这里插入图片描述

#将frame_a和frame_b进行相加
frame1_a + frame1_b

在这里插入图片描述
两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值
NaN。
计算出在船上最大的家族有 多少人

max(text['兄弟姐妹个数'] + text['父母子女个数'])
10

3、探索变量之间的关系
《Titanic》影片中女士与孩子、社会地位较高者优先得到了救助。
这表明Age,Sex和PClass可能是影响生存的关键因素,那么我们将通过图表来展现Sex和Pclass分别与Survived的关系。

text[['Sex','Survived']].groupby(['Sex'],as_index=False).mean().sort_values(by='Survived',ascending=False)

在这里插入图片描述
以透视表的形式展示

sex_pivot = text.pivot_table(index="Sex",values="Survived")
sex_pivot

import matplotlib.pyplot as plt

#构造Sex与Survived均值的条形图
sex_pivot.plot.bar(rot=360)
plt.show()

在这里插入图片描述
女性的幸存比例明显高于男性

pandas基础

1、查看DataFrame数据的每列的项

df.columns
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
 dtype='object')

2、查看"cabin"这列的所有项[有多种方法]

df['Cabin'].head(3)
df.Cabin.head(3)

在这里插入图片描述
3、删除多余的列

# 删除多余的列
del test_1['a']
test_1.head(3)

4、将[‘PassengerId’,‘Name’,‘Age’,‘Ticket’]这几个列元 素隐藏,只观察其他几个列元素

df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)

在这里插入图片描述
注:如果想要完全的删除你的数据结构,使用inplace=True,因为使用inplace就将原数据覆盖了
5、筛选
(1)以"Age"为筛选条件,显示年龄在10岁以下的乘客信息

df[df["Age"]<10].head(3)

在这里插入图片描述
(2)以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage

midage = df[(df["Age"]>10)& (df["Age"]<50)]
midage.head(3)

在这里插入图片描述
(3)将midage的数据中第100行的"Pclass"和"Sex"的数 据显示出来

midage = midage.reset_index(drop=True)
midage.head(3)
midage.loc[[100],['Pclass','Sex']]

重置索引后,drop参数默认为False,想要删除原先的索引列要置为True.想要在原数据上修改要inplace=True.特别是不赋值的情况必须要加,否则drop无效.
在这里插入图片描述
(4)使用loc方法将midage的数据中第100,105,108行 的"Pclass","Name"和"Sex"的数据显示出来

midage.loc[[100,105,108],['Pclass','Name','Sex']]

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值