Python数据分析(一):读取数据

Python数据分析(一):读取数据

作为一个刚刚踏入职场的数据分析师,对业务的洞察能力还远远不行,因此只能整理些数据分析工具的使用方法分享出来,数据分析的能力还远远不足。Python只是一个帮助做分析的工具,我认为数据分析师的不应该局限于追求工具的使用熟练度,基于经验和知识,对业务做出有价值的判断才是数据分析师的价值。

读取数据

因为很多大公司都会有自己hive类的提取数据的工具,这里仅仅介绍Python读取本地文件的方法。
插一句题外话,熟练使用SQL语句应该是每个想要进大公司的分析师必会的技能,Notebook则是每个分析师提高分析效率的便捷工具。
一般我们读取本地数据的方法分为Python自带的读取函数和模块库函数:
1.Python自带函数读取数据:
python读取文件的方式一般用的比较少,不如模块库函数用起来方便。

# open函数
# file_boject = open(file_name [, access_model][, buffering])
# file_name:文件路径
# access_model:文件打开的模式:只读、写入、追加等,默认是只读'r'
# buffering:如果buffering的值设为0,就不会有寄存,如果设为1,访问文件时会寄存行。
file_path = '/Users/Hubans/Desktop/example.csv'
with open(file_path, 'r', encoding='utf-8') as f:
	lines = f.read()
print(lines)
out:
	岗位,公司,地址,工资
    数据分析师,阿里,杭州,1.4
    大数据工程师,百度,北京,1.6
    产品运营,拼多多,上海,1.3

上面读取的csv文件,是按照行读取的,但是我们想要的是列表格式。

with open(file_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    content = [line.strip().split(',') for line in lines]  
# strip()用来去除头尾字符、空白符,lstrip()去除头部,rstrip()去除尾部
# 把嵌套列表读取为DataFrame格式,并分别指定表格内容和表格标题
import pandas as pd
df_data1 = pd.DataFrame(content[1:], columns=content[0])
# 将读取的数据转为DataFrame格式。第一行作为列索引
out:
	岗位 公司 地址 工资
    数据分析师 滴滴出行 北京 1.2
    大数据工程师 百度 北京 1.3
    产品运营 拼多多 上海 1.4

2.Pandas读取文件
pandas常用读取函数有:read_csv、read_excel、read_table等。
2.1. read_csv、read_table:

import pandas as pd
data = pd.read_csv(file_path, encoding='utf-8', index_col=None, header=0)
# 或者data = pd.read_csv(file_path, encoding='utf-8')
# index_col用来指定索引的列编号,0 表示取第一列,None则会默认分配行索引
# header用来指定列名,默认为0,取第一行,若不希望设置列名,则取None

read_table的用法和read_csv一致,默认分隔符是制表符’\t’,如果想用read_table读取csv文件,需要额外指定分隔符:

data1 = pd.read_table(file_path, encoding='utf-8', index_col=None, header=0, sep=',')

read_csv、read_table读取文件非常方便,可以跳过某些行,也可以针对大量数据进行分块读取。
常用的其他参数有:

sep,delimite 文件分隔符
header 用作列名的行号,默认0,没有列名则设置为None
index_col 用作索引的列编号
names 自定义的列名列表,结合header=None
skiprows 需要跳过读取的行数(从开始计算,比如跳过10行),或者需要跳过的行号列表
nrows 仅读取开始的若干行
chunksize 指定文件块的大小(行数),逐块读取
encoding 指点Unicode的文本编码格式
thousands 指定千分位分隔符。例如','

数据量很大时,可以设置chunksize参数进行分块读取。

chunker = pd.read_csv(file01, encoding='utf-8', chunksize=2)
for piece in chunker:
    print(piece)
OUT:
   岗位 公司 地址 工资
0 数据分析师 滴滴出行 北京 1.2
1 大数据工程师 百度 北京 1.3

   岗位 公司 地址 工资
2 产品运营 拼多多 上海 1.4

2.2. read_excel:
由于我们读取的文件经常是xlsx格式的,并且包含不同的sheet,我们只想对其中的某一个sheet进行读取,此时可用read_excel来读取指定sheet:

data = pd.read_excel(file_path, sheet_name='工资明细', header=0)
# 其他的一些参数和read_csv()类似

文件保存

Pandas保存数据:

data_save = data.to_csv('/Users/Hubans/Desktop/data_save.csv')
# 也可保存为其他格式,例如txt格式'/Users/Hubans/Desktop/data_save.txt'

总结

Pandas读取数据的功能十分强大,本文介绍的方法基本可以满足日常需求,遇到特殊的读取需求,可以寻找详细的函数参数。其次,数据分析师可以同时利用excel、Python、Hive等多个工具来处理数据,有些操作在excel中处理更方便,而有些操作需要在hive提取数据时就需要处理好的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值