1 第一章:数据载入及初步观察
从Kaggle导入titanic数据--(register Kaggle账号)
1.1载入数据
1.1.1 调用相关库(numpy、pandas)
import numpy as np
import pandas as pd
1.1.2 按照绝对/相对载入数据
(1)使用相对路径载入数据
df=pd.read_csv('train.csv')
查看Dataframe相关参数
【Shape】查看行列【head】查看头部尾部数据【index】索引【columns】列名
//DataFrame与Pandas区别:pandas只能有一种数据类型、DF可以有很多种
(2)使用绝对路径载入数据
import os
path=os.path.abspath('train.csv')
df
【区别】read_table以制表符\t为分隔符//read_csv以逗号分隔 | 修改默认sep=‘,’即可与csv相同分隔
1.1.3 每1000行为一个数据模块,逐块读取
chunker = pd.read_csv('train.csv',chunksize=1000)
type(chunker)
for chunker in df:
print(chunker)
逐块读取:数据量较大,可以将数据按照chunksize作为每一块的行数分块读取数据(修改chunksize=xxxx),返回一个数据类型为TextParser的对象。TextParser根据chunksize遍历数据,将每行出现的Key出现的次数作为Series的一个元素,然后再对Series进行处理。
1.1.4 将表头改成中文,索引改为乘客ID
两种方法:
方法1:修改列名【替换表头】
#idea1 修改列名#
df.columns=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄'
,'堂兄弟/妹个数',' 父母与小孩个数','船票信息','票价','客舱']
df.head()df.head()
方法2:调用时修改【修改表头】
#idea2 修改列名#
df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄'
,'堂兄弟/妹个数',' 父母与小孩个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
df.head()
1.2 查看数据的基本信息
CSDN@梁小亦
查看前十行/前十五行数据:
df.head(10)
df.tail(15)
判断是否为空 :
df.isnull()
1.3保存数据
df.to_csv('train_chinese.csv')
1.4知道数据叫什么
【DataFrame与Series的区别】 Series有索引,与数组numpy.array类似;DataFrame相当于表格
#example1_Series
sdata = {'ShangHai': 17000, 'BeiJing': 21000, 'GuangZhou': 14000, 'ShenZhen': 15000}
example_1 = pd.Series(sdata)
example_1
#example2_DataFrame
data = {'City': ['ShangHai', 'BeiJing', 'BeiJing', 'GuangZhou', 'ShenZhen', 'ShenZhen'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],'times': [5,2,2,1,3,3]}
example_2 = pd.DataFrame(data)
example_2
查看DataFrame数据的每列的名称【df.columns】
查看某一列所有值【data0= df.loc[ : ,"乘客等级(1/2/3等舱位)"]】
有关筛选等内容【符号的使用及iloc】
#以"Age"为筛选条件,显示年龄在10岁以下的乘客信息。
df[df.Age<10].head(3)
# 以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来
df[(df.Age>10)&(df.Age<50)].head(3)
# 第100行的"Pclass"和"Sex"的数据显示出来
df.loc[[100],['Pclass','Sex']]
# 第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来
df.loc[[100,105,108],['Pclass','Name','Sex']]
# 使用iloc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来
df.iloc[[100,105,108],[2,3,4]]