数据分析从零开始实战 | 基础篇

Posted 简说Python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析从零开始实战 | 基础篇相关的知识,希望对你有一定的参考价值。

上节补充

CSV

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

TSV

TSV 是Tab-separated values的缩写,即制表符分隔值。
Python的csv模块准确的讲应该叫做dsv模块,因为它实际上是支持范式的分隔符分隔值文件(DSV,delimiter-separated values)的。
   delimiter参数值默认为半角逗号,即默认将被处理文件视为CSV。
   当
delimiter='\t'时,被处理文件就是TSV。

零 写在前面

上一篇文章中带大家了解了数据分析基础,配置好了数据分析的基本环境,以及利用pandas模块读写csv文件,在本文开头,我也补充了csv与tsv的基本介绍与区别,意在更好的让大家理解相关知识点,本文将带大家继续学习文件读取。

点击查看第一篇文章:

一 基本知识概要

1.利用pandas读写tsv文件
2.利用pandas读写json文件

二 开始动手动脑

1.利用pandas读写tsv文件

在文章开头我已经说明了csv与tsv的差别,相信部分看过第一篇文章的读者应该知道怎么处理tsv文件了。

csv与tsv只是内容的分隔符不一样,前者是,,后者是\t,python读取这两类文件都使用csv模块,也可以直接利用pandas,这里我们讲利用pandas读取方式,使用的函数read_csv()to_csv()在上一篇 文章中有详细介绍,这里我直接上案例代码。

(1) 读取tsv文件代码

import pandas as pd
import os

# 获取当前文件父目录路径
father_path = os.getcwd()

# 原始数据文件路径
rpath_tsv = father_path+r'\data01\city_station.tsv'
# 读取数据
tsv_read = pd.read_csv(rpath_tsv, sep="\t")
# 显示数据前10条
print(tsv_read.head(10))

运行结果

    站点名 代号
0  北京北 VAP
1  北京东 BOP
2  北京  BJP
3  北京南 VNP
4  北京西 BXP

(2) 写tsv文件代码

import pandas as pd
import os

# 获取当前文件父目录路径
father_path = os.getcwd()

# 保存数据文件路径
path_tsv = father_path+r'\data01\temp_city.tsv'

data = {"站点名": ["北京北""北京东""北京""北京南""北京西"],
        "代号": ["VAP""BOP""BJP""VNP""BXP"]}
df = pd.DataFrame(data)
df.to_csv(path_tsv, sep="\t", index=False)

运行结果
(3)号外加餐

利用csv模块也可以直接读取csv和tsv文件
csv.reader(csvfile, dialect='excel', **fmtparams)
csv.writer(csvfile, dialect='excel', **fmtparams)

csvfile,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)
对象,如果是文件对象,打开时需要加"b"标志参数。
qdialect,编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也
支持自定义。
fmtparam,格式化参数,用来覆盖之前dialect对象指定的编码风格。

2.利用pandas读写json文件
(1)利用pandas读取json文件

import pandas as pd
import os

# 获取当前文件父目录路径
father_path = os.getcwd()
# 原始数据文件路径
rpath_json = father_path+r'\data01\realEstate_trans.json'
json_read = pd.read_json(rpath_json)

# 输出头10行记录
print(json_read.head(10))

运行结果
数据分析从零开始实战 | 基础篇(二)
函数解析

read_json(path_or_buf,orient,encoding,numpy)

常见参数解析:

path_or_buf:字符串,表示文件路径;

orient:指示预期的JSON字符串格式。可以to_json()使用相应的方向值生成兼容的JSON字符串。一组可能的方向是:

'split' : dict like {index -> [index], columns -> [columns], data -> [values]}
'records' : list like [{column -> value}, ... , {column -> value}]
'index' : dict like {index -> {column -> value}}
'columns' : dict like {column -> {index -> value}}
'values' : just the values array

encoding:字符串,默认为'utf-8';

numpy:布尔值,默认为False,直接解码为numpy数组。仅支持数字数据,但支持非数字列和索引标签。另请注意,如果numpy = True,则每个术语的JSON顺序必须相同。

(2)利用pandas写入json文件

import pandas as pd
import os

# 获取当前文件父目录路径
father_path = os.getcwd()
# 存储数据文件路径
wpath_json = father_path+r'\data01\temp_trans.json'
data = [{"city""SACRAMENTO""longitude"-121.434879"street""3526 HIGH ST""sq__ft"836"latitude"38.631913"sale_date""Wed May 21 00:00:00 EDT 2008""zip"95838"beds"2"type""Residential""state""CA""baths"1"price"59222}, {"city""SACRAMENTO""longitude"-121.431028"street""51 OMAHA CT""sq__ft"1167"latitude"38.478902"sale_date""Wed May 21 00:00:00 EDT 2008""zip"95823"beds"3"type""Residential""state""CA""baths"1"price"68212}, {"city""SACRAMENTO""longitude"-121.443839"street""2796 BRANCH ST""sq__ft"796"latitude"38.618305"sale_date""Wed May 21 00:00:00 EDT 2008""zip"95815"beds"2"type""Residential""state""CA""baths"1"price"68880}]
df = pd.DataFrame(data)
df.to_json(wpath_json)

运行结果
函数解析

to_json(path_or_buf,orient,encoding,index)
前三个参数和read_json()里的一样
index:False则选择不写入索引,默认为True。

号外加餐

利用json模版的loads()与dumps()方法也可以实现json文件的读写。

之前的一篇文章有详细介绍

送你的话

我始终觉得,要想学好一门语言,底层是最重要的,所以不要觉得入门的这些基本东西太简单,学好基础,才能成大牛


| 今日打卡主题

第n天打卡,你觉得基础知识要不要学的这么细,为什么?


正在更新专栏

Python机器学习

001.

002.

003.

(我会让你看到这里慢慢壮大)



数据分析从零开始实战

001.

(我会让你看到这里慢慢壮大)


已完结专栏

Python小技能入门四篇


2019,我们一起让知识『好

以上是关于数据分析从零开始实战 | 基础篇的主要内容,如果未能解决你的问题,请参考以下文章

Python 小白从零开始 PyQt5 项目实战汇总篇(完整例程)

Python 小白从零开始 PyQt5 项目实战汇总篇(完整例程)

从零开始写一个opengl渲染器——基础设施搭建篇

关东升的《从零开始学Swift》3月9日已经上架

Android游戏编程之从零开始pdf

Android游戏编程之从零开始pdf