动手学数据分析(Pandas)-任务1:数据加载及探索性数据分析

一、载入数据

1.1 导入库和数据文件

import numpy as np
import pandas as pd
import os

导入数据文件的方法一般分为两种:
(1) 使用相对路径载入数据

train = pd.read_csv("../data/train.csv") # ./data/train.csv表示当前文件夹下的子文件夹data里的csv文件
# train = pd.read_csv("../data/train.csv")# ../data/train.csv表示当期文件夹的父文件夹的子文件夹data里的csv文件

(2) 使用绝对路径载入数据

file_path = os.path.join(os.path.dirname(__file__) + '/../data/train.csv')
train = pd.read_csv(file_path)

1.2 分块读取(每1000行为一个数据模块)

把数据按分块进行读取,就需要设置pandas.read_csv()函数的参数chunter,具体可以官方文档:pandas.read_csv

chunker_train = pd.read_csv('train.csv', chunksize = 1000)
for item in chunker_train:
    print(type(item))
    print(item)

将数据分块读取的好处是可以减少内存的占用

1.3 将修改表头

有时候我们读取到的数据表头语言不多,或者需要修改表头的描述,以便后续的分析,我们可以参考这个函数:pandas.DataFrame.rename()

train = train.rename(
					 columns={
    
    'PassengerId' : '乘客ID',
                     'Survived' : '是否幸存',
                      'Pclass' : '乘客等级(1/2/3等舱位)',
                      'Name' : '乘客姓名',
                      'Sex' : '性别',
                      'Age' : '年龄',
                      'SibSp' : '堂兄弟/妹个数',
                      'Parch' : '父母与小孩个数',
                      'Ticket' : '船票信息',
                      'Fare' : '票价',
                      'Cabin' : '客舱',
                      'Embarked' : '登船港口'
                     })

二、初步观察

2.1 查看数据的基本信息

train.info() #打印摘要
train.describe() # 描述性统计信息

2.2 观察表格前15行后10行的数据

train.head(15)
train.tail(10)

官方指南:DataFrame.head()
DataFrame.tail()

2.3 判断数据是否为空

train.isnull() # 数据为None或者numpy.NaN返回True,不为空则返回False,如果数据为空字符''或numpy.inf,不返回True
train.isna() # 数据为None或者numpy.NaN返回True,不为空则返回False,如果数据为空字符''或numpy.inf,不返回True

官方指南:DataFrame.isnull()
DataFrame.isna()

三、保存数据

pandas保存数据的函数有很多,这里我们使用pandas.DataFrame.to_csv()
保存其它格式文件的函数:to_json, to_html

四、知道你的数据叫什么

4.1 pd.Series和pd.DataFrame

pandas教程:series和dataframe
series结构有索引,和列名组成,如果没有,那么程序会自动赋名为None

series的索引名具有唯一性,索引可以数字和字符,系统会自动将他们转化为一个类型object
在这里插入图片描述
dataframe由索引和列名组成,索引不具有唯一性,列名也不具有唯一性
在这里插入图片描述

4.2 查看DataFrame每列的名称

要查看列的名称,我们可以把列的名称转换成列表一起显示出来,相关函数 : pandas.series.tolist()

4.3 隐藏或删除DataFrame的元素

DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
labels=列表或者单个标签,axis=0表示删除行,axis=1表示删除列, inplace=False只是隐藏,inplace=True表示删除

五、筛选的逻辑

5.1 对DataFrame数据进行条件筛选

Pandas-筛选数据

5.2 使用loc和iloc显示部分数据

官方指南:
pandas.DataFrame.loc
pandas.DataFrame.iloc

#df.iloc只能使用索引值,不能用列名标签

midage.loc[[100, 105, 108], ['Pclass', 'Name', 'Sex']]
midage.iloc[[100, 105, 108], [2, 3, 4]]

六、了解你的数据吗?

DataFrame.sort_values()
DataFrame.sort_index()
其中ascending=True为升序,反之,为降序

pandas汇总计算和描述统计
Pandas:表计算和数据分析

猜你喜欢

转载自blog.csdn.net/jackhh1/article/details/118703984