动手数据分析第一章Task01

第一章:数据加载

1.1载入数据

1.1.1 导入numpy和pandas

import numpy as np
import pandas as pd
import os

 1.1.2 载入数据

下载数据集train.csv和test.csv文件

read_csv()

# 相对路径载入数据
os.getcwd()                         # 查看相对路径
pf.read_csv('train.csv')
df.head(3) #查看前三行的数据

# 绝对路径载入数据
path=os.path.abspath('train.csv')   # 查看绝对路径
pd.read_csv(path)

read_table()

# 默认分隔符为制表符
pd.read_table("train.csv") 

# 修改分隔符为逗号
pd.read_table("train.csv",sep=",")

TSV文件和CSV的文件的区别是:前者使用\t作为分隔符,后者使用","作为分隔符.类似的读取xlsx文件:pd.read_excel(),返回DataFrame类型的数据

1.1.3:每1000行为一个数据模块,逐块读取

# 设置每1000行读取,TextFileReader类型
chunker = pd.read_csv('train.csv',chunksize=1000,iterator=True) 

# TextFileRead类型的数据需要迭代读取或者使用get_chunk()或者转换成DataFrame类型
chunker.get_chunk()  

1.1.4:将表头改成中文,索引改为乘客ID


#方法1
df.columns = ['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口']

#方法2:读取文件时重命名,但是英文成了第一行
pd.read_csv('train.csv',names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口'])

1.2初步观察

1.2.1:查看数据的基本信息

de.info()   # 查看数据的类型和属性


df.describe()   # 统计数据信息,个数,均值。方差,最小值等

1.2.2:观察表格前10行的数据和后15行的数据

df.head(10)  # 前10行
df.tail(15)  # 后15行

1.2.4:判断数据是否为空,为空的地方返回True,其余地方返回False

df.isnull()

 1.3:保存数据

df.to_csv("train_chinese.csv")

#中文乱码解决

df.to_csv("train_chinese.csv",encoding="utf_8_sig")

2.pandas基础

sdata = {'a':1,'b':2,'c':3} 
example = pd.Series(sdata)


daya = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]} # 以每一列的名字为头创建

 

 

df.columns      # 查看DataFrame数据每列的名称
df['Cabin'].head(3)  # 查"看Cabin"前三行的值
df.Cabin.head(3)

# 删除指定的列 
df.drop(['a'], axis=1)  # axis=1表示列,0表示行,方法1
del df['a']             # 方法2


# 将指定列隐藏,如果想要完全的删除你的数据结构,使用inplace=True,将原数据覆盖了
df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)


# "Age"为筛选条件,显示年龄在10岁以下的乘客信息
df[df['Age']<10]


# 10-50岁之间的乘客信息
df[(df["Age"]>10)& (df["Age"]<50)]


# 将数据中第100行的"Pclass"和"Sex"的数据显示出来
df.loc[[100],['Pclass','Sex']]

# 重新设置下标,从小到大排序
midage = midage.reset_index(drop=True)

# loc方法显示多行
midage.loc[[100,105,108],['Pclass','Name','Sex']] 

# iloc方法显示多行
midage.iloc[[100,105,108],[2,3,4]]

3.探索性数据分析

1.读取数据

text = pd.read_csv('train_chinese.csv')
text.head()

2.对数据进行排序,要求升序

frame = pd.DataFrame(np.arange(8).reshape((2, 4)),
             index=['2','1'],
             columns=['d', 'a', 'b', 'c'])

frame.sort_values(by='c', ascending=True)   # 对值排序,ascending=True为升序,false为降序
frame.sort_index()                          # 对索引排序,默认为行索引升序
frame.sort_index(axis=1)                    # 对列索引升序排序
frame.sort_index(axis=1, ascending=False)   # 列索引降序

# 让任选两列数据同时降序排序
frame.sort_values(by=['a', 'c'], ascending=False)

3.算术计算

相加,对应索引的值进行相加,其他值为NaN,同理减乘除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值