【数据分析学习笔记Task01】数据载入观察

本文介绍了如何通过Python pandas处理大型CSV数据,包括分块加载、初步观察数据特征(如基本信息、缺失值检查、数据筛选和排序),以及探索性分析(如价格与年龄排序)。作者强调了观察数据分布和特征间关系的重要性。
摘要由CSDN通过智能技术生成


前言

作为数据分析系列的第一次学习。主要是载入数据并观察,查看一下数据的相关特征。同时作为自己的一个学习过程记录。

一、载入数据

加载数据集的第一步就是用head查看一下数据集长什么样子。

import numpy as np
import pandas as pd

df = pd.read_csv('train.csv')
df.head(3)

在这里插入图片描述
然后这里了解到CSVTSV文件的区别:前者是以逗号作为分隔符的,而后者是以Tab作为分隔符。
还有read_csvread_table的区别:其实也是分隔符与制表符的区别。前者默认为,,后者默认为\t。但指明分隔符参数sep那其实两者就相同了

分块加载

加载数据时,如果数据集较大,而一次性读入内存会导致崩溃,那就需要考虑分块读取.

#写入代码
df1 = pd.read_csv('train.csv', chunksize=500)
print(df1)
for chunk in df1:
    print(chunk.head(3))

在这里插入图片描述
这里chunksize参数指明了每个块的大小为500(最后一个块可能由于不整除,那还剩多少大小就为多少).在后续的操作其实只是对每个块进行同样的处理,所以用for就能处理。

二、初步观察

导入数据后可以对数据进行一个初步观察。可以查看数据的基本信息。

df.info()  # 查看基本信息
df.isnull().head(3)  # 判断是否是空,对每个元素给个判断,然后用bool表示每个值所在位置是否为空

在这里插入图片描述
还学习到一些pandas的函数:
pd.drop():可以删除某些行列

# 多了一个unnamed列和a列,将该列删除
df = pd.read_csv('test_1.csv')
df.head(3)
df.drop(columns=['a','Unnamed: 0'],axis=1, inplace=True)  # 默认按行删除,axis=1代表从列角度,inplace表示是否覆盖原表
df.head(3)

删除前

删除后
pd.loc():可以对df行列索引进行取值操作。传的可以是值,也可以是列表,也可以是不等式,也可以是bool列表。

以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage

midage = df.loc[(df['Age'] > 10) & (df['Age'] < 50)] # 只有1个值,对行操作
midage.head(3)

在这里插入图片描述
(这里需要注意的是:在对原表执行某些取值操作形成了一个新表后,需要对新表执行reset_index操作来更新索引,否则还是使用的原表的索引。以下面问题为例)
将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来

df.loc[100]

在这里插入图片描述

midage.loc[100,['Pclass','Sex']]  # 可以看到这个索引100定位的是df的第100行

在这里插入图片描述

midage  # 没有rest_index,用的还是df的索引

在这里插入图片描述

midage = midage.reset_index(drop=True)
midage  # reset后可以看到index又连续了.

在这里插入图片描述

midage.loc[100,['Pclass','Sex']]

在这里插入图片描述
midage是按照符合条件的Age选择的df的行,所以会有隔行,但是使用的还是原df的index.所以需要reset_index使index连续.否则就会出现上面的问题,用100取的是index为100(对于原df来说确实是第100行)而不是位置为100的行

三、探索性分析

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

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

在这里插入图片描述
通过观察可以看到,票价高的仓位等级就好,幸存的可能性就大。所以可以从观察初步得到数据特征的一些关系。
对兄弟姐妹个数做排序

df.sort_values(['兄弟姐妹个数'],ascending=False).head(10)

在这里插入图片描述

年龄高的,幸存下来的也少; 兄弟姐妹多的,往往仓位等级也不是很好,所以幸存率的也低.
(总之,在这种预测问题上,可以先观察数每个特征数据的对于最后预测结果的影响,也就是按照列索引排个序,观察值与值之间的关系)

小结

作为数据分析的第一次学习,主要是了解了对于一个新数据拿到手的第一步该如何做。给我的感觉就是,首先将数据读进来观察,可以通过一些pandas的方法来观察数据并简单从分布特点给予一个初步的评判。
比如info()describe()方法,可以看到行列,也可以看到行列的值的一种特征分布;
比如对某列的数据做一个sort_values(),简单观察特征与需要预测的关系;
顺便了解了一下pandas的一些方法:
reset_index(),在根据某些条件从原表重组后需要更新行索引;lociloc索引的方法,一个是根据索引值,一个是根据位置;sort_values()来对索引下面的值进行排序;value_counts()可以统计某列的唯一值的数量等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值