Task01:数据载入和初步观察

【目录】:

  • [1 第一章第一节:数据载入和初步观察]
    • [1.1 加载数据]
    • [1.2 初步观察]
  • [2 第一章第二节:pandas基础]
    • [2.1 删除列]
    • [2.2 筛选数据]
  • [3 第一章第三节:探索性数据分析]
    • [3.1 对数据进行排序]
    • [3.2 查看数据基本统计信息]

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

导库
import numpy as np import pandas as pd import matplotlib.pyplot as plt

加载数据
data=pd.read_csv('E:/2021-11-14/Titanic数据/train.csv') data.head(3)

  • 思考1:TSV和CSV区别

  • 1.从名称上,TSV是tab-separated values的缩写,即制表符分隔值,用制表符’\t’作为
    字段值的分隔符;CSV,comma-separated values是用半角逗号作为字段值的分隔符;

  • 2.IANA规定的标准TSV个数,字段值之中是不允许出现制表符的

  • 思考2:pd.read_csv和pd.read_table的区别

  • 1.read_table将范式的分隔符的文件读入DataFrame,默认将TSV文件读入DataFrame

  • 2.read_csv将逗号的值(CSV)文件读入DataFrame

逐块读取数据
chunker = pd.read_csv('E:/2021-11-14/Titanic数据/train.csv', chunksize=1000)

使用for循环语句
'chunksize=100

data_chuck = pd.read_csv("E:/2021-11-14/Titanic数据/train.csv", chunksize=chunksize)
data = pd.DataFrame()
start_index = 0
for u in data_chuck:
    print("正在处理第"+str(start_index) +"行数据")
    data = data.append(u.loc[start_index],ignore_index=True)
    start_index += chunksize
print("数据处理完成")'
  • 思考3:数据逐块读取
  • 定义:将数据分成小块按块读取,得到的对象指向了多个分块对象,但并没有将实际
    数据先读入,ellipsis是在提取数据时才取到数据
  • 原因:在处理很大的文件时,可以将大文件拆分成小块读入,这样可以减少内存的存储
    与计算资源。数据的处理和清洗经常使用分块的方式处理,能大大降低内存的使用量,耗时一些

修改索引名称-读取数据时修改
data= pd.read_csv(‘E:/2021-11-14/Titanic数据/train.csv’, names=[‘乘客ID’,‘是否幸存’,‘仓位等级’,‘姓名’,‘性别’,‘年龄’,‘兄弟姐妹个数’,‘父母子女个数’,‘船票信息’,‘票价’,‘客舱’,‘登船港口’],index_col=‘乘客ID’,header=0)
data.head()

#查看数据索引
data.index

#查看数据的类型
data.dtypes
type(data['Age'])

#查看数据行列
data.shape

#查看数据量
data.size

#数据描述性统计
data.describe()

#查看缺失值个数
data.isnull().sum()

#查看重复值
data[data.duplicated()]

#查看数据的列表形式
data.values

第一章第二节:pandas基础

#创建series
obj1=pd.Series([4,7,-5,3],index=[‘d’,‘b’,‘a’,‘c’])
obj1

#创建DataFrame
d= {
“姓名”:[“建国”,“爱国”,“卫国”,“建军”],
“年龄”:[17,18,19,20],
“是否入党”:[‘是’,‘是’,‘否’,‘否’]
}
obj2= pd.DataFrame(d)
obj2

#导入数据
data=pd.read_csv(‘E:/2021-11-14/Titanic数据/train.csv’)
data.head(3)
#查看dataframe数据每列的名称
data.columns
#查看cabin这列的所有值
data['Cabin'].head(3)

2.1 删除列

#删除列
test_1=pd.read_csv(‘E:/2021-11-14/Titanic数据/test-1.csv’)
test_1.head()
#删除列方法一
del test_1[‘a’]
test_1.head(3)
#删除列方法二
test_1=test_1.drop([‘a’],axis=1)
print(test_1)

2.2 筛选数据

#以"Age"为筛选条件,显示年龄在10岁以下的乘客信息。
data[data['Age']<10].head()

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

#将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来
#先重置索引
midage = midage.reset_index(drop=True)
midage.head(3)
#使用loc方法将midage的数据中第100,105,108行的"Pclass",“Name"和"Sex"的数据显示出来
midage.loc[[100,105,108],['Pclass','Name','Sex']]
#使用iloc方法将midage的数据中第100,105,108行的"Pclass”,"Name"和"Sex"的数据显示出来
midage.iloc[[100,105,108],[2,3,4]]

3 第一章第三节:探索性数据分析

3.1 对数据进行排序

#按票价和年龄两列进行综合排序(降序排列)
data.sort_values(by=['票价','年龄'],ascending=False).head()
#按幸存和年龄两列进行综合排序(降序排列)
data.sort_values(by=['年龄','是否幸存'],ascending=False).head()

3.2 查看数据基本统计信息

#分别看看泰坦尼克号数据集中 票价、父母子女 这列数据的基本统计数据
data['票价'].describe()

  • 分析:票价的平均值时32.204208,方差值较大表示波动较大,75%的票价信息低于平均值,说明存在极端值

http://localhost:8888/notebooks/datawhale/Datawhale动手学数据分析笔记.ipynb#加载数据
内容来源于:(https://github.com/datawhalechina/hands-on-data-analysis)

浙ICP备19012682号