动手学数据分析 | task01

160 阅读1分钟

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)