chap 1 数据载入及初步观察
载入所需要的库
import numpy as np
import pandas as pd
1.1 载入数据
os.getcwd() 需要引入os
相对路径
绝对路径
datas = pd.read_table("E:/conda files/hands-on-data-analysis/第一单元项目集合/train.csv")
print(datas)
# 用split分割数据 添加新的列 可等效 read_csv
datas = pd.read_csv("E:/conda files/hands-on-data-analysis/第一单元项目集合/train.csv")
print(datas)
read_table是以'\t'为分割
read_csv是以','为分割
分块读取
返回的是一个可迭代的对象TextFileReader
for chunk in datas:
print(chunk)
type(chunk) # DataFrame
将表头改成中文
datas.set_index('PassengerId')
datas = datas.drop(columns='PassengerId')
c = '''Survived => 是否幸存
Pclass => 乘客等级(1/2/3等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 堂兄弟/妹个数
Parch => 父母与小孩个数
Ticket => 船票信息
Fare => 票价
Cabin => 客舱
Embarked => 登船港口'''
c = c.split('\n')
a=[]
for i in c:
i = i.split('=> ')[1]
# print(i)
a.append(i)
datas.columns = a
print(datas)
1.2 初步观察
print(datas.shape)
print(datas.index)
print(datas.columns)
datas.info()
datas.describe()
1.3 保存数据
# 注意:不同的操作系统保存下来可能会有乱码。大家可以加入`encoding='GBK' 或者 ’encoding = ’utf-8‘‘`
datas.to_csv('./train_chinese.csv')
1.4 数据的面貌
查看某列所有值
datas['Cabin']
datas.loc[:,'Cabin']
datas.iloc[:,-2]
对比两个csv/DataFrame
test = pd.read_csv('./test_1.csv')
t = test.columns.values
d = datas.columns.values
t = list(set(t).difference(set(d)))
test = test.drop(t,axis=1) # 这里要写赋值
test.columns
隐藏列
# 使用drop函数 inplace=false
datas.style.hide_columns(['Name','Age','Ticket'])
datas.columns
1.5 筛选数据
midage1 = datas.loc[datas.Age>10]
midage2 = datas.loc[datas.Age<50]
midage = pd.merge(midage1,midage2,how='inner')
midage
loc和iloc
midage.loc[[99,104,107],['Pclass','Name','Sex']]
midage.iloc[[99,104,107],[1,2,3]]
1.6 探索性数据分析
d = pd.DataFrame({'a':[1,5,3,8],'b':[4,2,9,6]})
d.sort_index(axis=0,ascending=False)
d.sort_index(axis=1)
d.sort_values(['a','b'],ascending=False)
datas.sort_values(by=['票价','年龄'],ascending=False).head(20)