数据分析1-数据加载及探索性数据分析

数据加载

载入数据

  1. 绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,一级级目录指向文件。

  2. 相对路径就是以当前文件为基准,一级级目录指向被引用的资源文件。

  3. 路径查看

import os
os.getcwd()

相对路径载入数据

# 在同一文件夹
df = pd.read_csv('test_1.csv')

绝对路径载入数据

df = pd.read_csv(r'C:\Users\crc\Desktop\20200819-python学习\动手学数据分析-组队学习版\第一单元项目集合\test_1.csv')

报错

中间报错:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: tr
解决办法:路径前加 r
中间报错:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb5 in position 0: invalid start
解决办法:

#-*- coding : utf-8-*-
# coding:unicode_escape
import pandas as pd
import numpy as np
data= pd.read_csv(r'C:\Users\user\Documents\DATA_LABELS.csv',  delimiter="\t",encoding="gbk")

https://blog.csdn.net/qq_35892623/article/details/82941473

中间报错:Pandas读取CSV错误:Error tokenizing data. C error: Expected 1 fields in line **, saw **
解决办法:

pd.read_csv(filename, delimiter="\t")

https://blog.csdn.net/fulin9452/article/details/103228720

pd.read_csv()和pd.read_table()的不同

函数说明
pd.read_csv()从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号
pd.read_table()从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符“\t”

如果想pd.read_csv()和pd.read_table()效果一样,需要怎么做?
指定分隔符

pd.read_table('', sep=',')

了解一下’.tsv’和’.csv’的不同,如何加载这两个数据集?
TSV文件和CSV的文件的区别是:前者使用\t作为分隔符,后者使用,作为分隔符。

pd.read_csv('test.tsv', sep='\t')

读取数据

【思考】什么是逐块读取?为什么要逐块读取呢?
处理大文件时,只需要读取文件的一小部分或逐块对文件进行迭代

#读取前1000行数据
pd.read_csv('train.csv',nrows=1000)

迭代读取 – 不懂

chunker = pd.read_csv('train.csv',chunksize=1000)
for chunker in df:
    print(chunker)

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

df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)

初步观察

导入数据后,你可能要对数据的整体结构和样例进行概览,比如说,数据大小、有多少列,各列都是什么格式的,是否包含null等

查看数据的基本信息
df.head(n) 查看DataFrame对象的前n行
df.tail(n) 查看DataFrame对象的最后n行
df.shape 查看数据的行列数各是多少
df.info() 查看索引、数据类型和内存信息
df.describe(percentiles=[.05, .25, .75, .95]) 查看数值型列的汇总统计,返回计数、均值、标准差、最小最大值、25%50%75%分位数,percentiles0.05,0.95分位数
df.unique() 快速查看数据列有哪些分类内容,类似groupby
s.value_counts(dropna=False) 查看Series对象的唯一值和计数
df.apply(pd.Series.value_counts) 查看DataFrame对象中每一列的唯一值和计数
df.sum() 返回所有列的求和值
df.mean() 返回所有列的均值
df.corr() 返回列与列之间的相关系数
df.count() 返回每一列中的非空值的个数
df.max() 返回每一列的最大值
df.min 返回每一列的最小值
df.median() 返回每一列的中位数
df.std() 返回每一列的标准差

保存数据

df.to_csv('train_chinese1.csv')

探索性数据分析

任务:对泰坦尼克号数据(trian.csv)按票价和年龄两列进行综合排序(降序排列),从数据中你能发现什么

df.sort_values(by=['票价', '年龄'], ascending=False)

任务:通过泰坦尼克号数据如何计算出在船上最大的家族有多少人?

max(df['兄弟姐妹个数']+df['父母子女个数'])

参考资料

  1. 在Python中以绝对路径或者相对路径导入文件的方法https://blog.csdn.net/xiongchengluo1129/article/details/80453599
  2. 运行python文件报SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: tr
    https://blog.csdn.net/xd060606/article/details/87164798
  3. 利用python进行数据分析
  4. Pandas读取tsv文件
    https://zgljl2012.com/python-pandasdu-qu-tsvwen-jian/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值