Data_Analysis_数据载入及探索性分析

数据载入

在进行数据分析之前,我们首先需要将数据集导入到python中。
1、先导入需要的包

import pandas as pd
import numpy as np

2、导入数据:数据的格式有多种,如:csv格式,xlsx格式,tsv格式等,都可用pandas中的方法导入。

df=pd.read_csv('F:\Datewheel资料\hands-on-data-analysis-master\hands-on-data-analysis-master\第一单元项目集合/train.csv')
df.head()

3、逐块读取
逐块读取就是将数据分为若干份别读取,在处理数据量大的文件是可能会用到。逐块读取的目的是将只想读取数据的一小部分或者是逐块对数据进行处理。

df1=pd.read_csv('F:\Datewheel资料\hands-on-data-analysis-master\hands-on-data-analysis-master\第一单元项目集合/train.csv',chunksize=1000)

4、将表头改成中文,索引改为乘客ID

#这里需要注意必须有header=0,header=0表示会替换掉原有的列名,否则会影响到下面的判断
df=pd.read_csv('F:\Datewheel资料\hands-on-data-analysis-master\hands-on-data-analysis-master\第一单元项目集合/train.csv',names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','堂兄弟/妹个数',' 父母与小孩个数','船票信息','票价','客舱','登船港口'],header=0)
df.head()

在这里插入图片描述

初步观察

1、查看数据的基本信息

df.info() #查看datafram的基本信息

在这里插入图片描述

df.describe() #查看datafram的统计信息
df.dtypes #查看列的类型
df.columns #查看列名
#观察表格的前10行数据
df.head(10)
#查看表格的后5行数据
df.tail(5)

2、判断数据是否为空

#判断整个表数据是否为空
df.isnull()

在这里插入图片描述

#判断某一列是否为空
df['年龄'].isnull()

在这里插入图片描述
初步观察数据时,可以了解数据的一些基本情况,如数据集大小,包含那些特征,可以看下数据每列的类型,及其统计分布等,对后续展开分析有很大帮助。

pandas基础

#pandas中有2种基本的数据类型:DateFrame和Series
ser_data={'zhuobao':1104,'guodong':'1216'}
s=pd.Series(ser_data)
s

在这里插入图片描述

dat_data={'name':['zhuobao','guodong'],
         'birthsday':[1104,1216]}
d=pd.DataFrame(dat_data)
d

在这里插入图片描述

#查看客舱列的所有信息,第一种方法
df['客舱']
#查看客舱列的所有信息,第二种方法
df.客舱

在这里插入图片描述

df2=pd.read_csv('F:\Datewheel资料\hands-on-data-analysis-master\hands-on-data-analysis-master\第一单元项目集合/test_1.csv')
df2.head()
#通过观察,发现test_1.csv与train.csv相比,多了一列a,现在要把test_1.csv种的列a删除
#删除列的第一种方式
df2.drop('a',axis=1)  #这种方式默认不在原来的表上进行操作,要想直接改变原来的表,需要设置inplace=True(默认为inplace=False),axis=0表示删除行,axis=1表示删除列(默认是axis=0)
#删除列的第二种方式
del df2['a']
df2.head()

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

df2.drop(['PassengerId','Name','Age','Ticket'],axis=1)

在这里插入图片描述

筛选信息

#显示出年龄在10岁以下的乘客信息
df[df['Age']<10].head()

在这里插入图片描述

#以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage
midage=df[(df['Age']>10)&(df['Age']<50)]
midage.head()

在这里插入图片描述

midage=midage.reset_index(drop=True) #需要把重置索引后的表赋给midage
midage.head()

在这里插入图片描述
通过reset_index()方法我们可以重置索引,drop参数为True时,直接丢弃原来的索引,否则原来的索引新生成一列名为’index’的列。 df.reset_index(inplace=True,drop=True)

#将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来
midage.iloc[[100],[2,4]] 

iloc表示位置索引,loc表示标签索引

midage.loc[[100,105,108],['Pclass','Name','Sex']] #这些就是索引为100,105和108的行

在这里插入图片描述

midage.iloc[[100,105,108],[2,3,4]]

在这里插入图片描述

探索性分析

df_1=pd.read_csv('F:\Datewheel资料\hands-on-data-analysis-master\hands-on-data-analysis-master\第一单元项目集合/train_chinese.csv')
df_1.head(3)

在这里插入图片描述

#对泰坦尼克号数据(trian.csv)按票价和年龄两列进行综合排序(降序排列)
df_1.sort_values(by=['票价','年龄'],ascending=False).head()

在这里插入图片描述

#计算出在船上最大的家族有多少人
max(df_1['堂兄弟/妹个数']+df_1[' 父母与小孩个数'])  #这里需要注意列名中的空格
#分别看看泰坦尼克号数据集中 票价、父母子女 这列数据的基本统计数据
df_1['票价'].describe()

在这里插入图片描述
从票价的统计信息可以明显地看出,票价的波动很大,有75%的人票价都在31以下,而最大值都有五百多。

df_1[' 父母与小孩个数'].describe()

在这里插入图片描述
从这列统计信息中可以看出,75%的人都没有携带父母与小孩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值