#yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据

简说Python 2021-11-25 18:26:06
编程语言 Python 数据分析 pandas csv

这是我参与11月更文挑战的第14天。

一、写在前面

本系列学习笔记参考书籍: 《数据分析实战》托马兹·卓巴斯,会将自己学习本书的笔记分享给大家,同样开成一个系列『数据分析从零开始实战』。

二、知识点概要

1.创建一个虚拟python运行环境,专门用于本系列学习;

2.数据分析常用模块pandas安装

3.利用pandas模块读写CSV格式文件

三、开始动手动脑

1.创建虚拟环境

我平时比较喜欢Pycharm,所以本系列打算完全用Pycharm做,Pycharm安装可以直接到官网上下载,使用社区版即可。

【注】我之前很喜欢Pycharm,现在比较喜欢VS Code,你还可以使用jupyter notebook。

(1)好的正式开始,打开Pycharm,点击File->New Project,基本配置说明见下图。

特别说明:python里面项目路径里不要出现中文,同时项目名称也不要出现中文,名称尽量能够概括项目内容。

#yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据_python

(2)创建成功后,我们会在对应目录下面发现多了项目文件和虚拟环境文件。

2.数据分析常用模块Pandas安装

(1)零基础教程,首先教大家怎么进入虚拟环境:进入到目录I:\pyCoding\Frame\Data_analysis\Scripts(我的虚拟环境目录),按住shift+鼠标右键,打开powershell或者cmd(如果是powershell就先输入cmd),再输入activate,进入虚拟环境,你会发现在路径前面多了一个括号里面是你的虚拟环境名称,表示你进入了虚拟环境。具体看下面:

PS I:\pyCoding\Frame\Data_analysis\Scripts> cmd
Microsoft Windows [版本 10.0.17134.112]
(c) 2018 Microsoft Corporation。保留所有权利。
I:\pyCoding\Frame\Data_analysis\Scripts>activate
(Data_analysis) I:\pyCoding\Frame\Data_analysis\Scripts>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

不知道大家有没有觉得很麻烦,我是觉得特别麻烦,每次进入虚拟环境都要先到指定文件路径,然后再输入指令,不符合程序员的风格啊!

【注】之前我是用的virtualenvwrapper进行虚拟环境管理,现在我更喜欢使用pipenv进行虚拟环境管理。

(2)安装pandas模块

使用快捷方式进入虚拟环境后,直接pip指令安装

# cmd下直接操作
C:\Users\82055>workon
Pass a name to activate one of the following virtualenvs:
==============================================================================
Data_analysis
spiderenv
C:\Users\82055>workon Data_analysis
(Data_analysis) C:\Users\82055>pip install pandas

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

安装结果:

#yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据_CSV_02

安装过程大概1分钟左右,完成后会显示

Installing collected packages: pytz, numpy, six, python-dateutil, pandas
Successfully installed numpy-1.15.4 pandas-0.23.4 python-dateutil-2.7.5 pytz-2018.7 six-1.11.0

  • 1.
  • 2.

很明显看出,这个过程不仅安装了pandas包,还安装了numpy,pytz,six,python-dateutil这些附加包,后面我们也会用上。

3.利用pandas模块读写CSV格式文件

(1)数据文件下载

 点击这里下载,本系列按书上来的数据都是这里面的,《数据分析实战》书中源代码也在这个代码仓库中,当然后面我自己也会建一个代码仓库,记录自己的学习过程,大家可以先从这里下载好数据文件。

(2)pandas基本介绍

pandas为Python编程语言提供高性能,是基于NumPy 的一种易于使用的数据结构和数据分析工具,pandas为我们提供了高性能的高级数据结构(比如:DataFrame)和高效地操作大型数据集所需的工具,同时提供了大量能使我们快速便捷地处理数据的函数和方法。

(3)利用pandas读取CSV文件

读取代码:

# 导入数据处理模块
import pandas as pd
import os
# 获取当前文件父目录路径
father_path = os.getcwd()
# 原始数据文件路径
rpath_csv = father_path+r'\data01\city_station.csv'
# 读取数据
csv_read = pd.read_csv(rpath_csv)
# 显示数据前10条
print(csv_read.head(10))

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

运行结果:

#yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据_python_03

函数解析:

read_csv(filepath_or_buffer,sep,header,names,skiprows,na_values,encoding,nrows)
按指定格式读取csv文件。

常见参数解析:

  • filepath_or_buffer:字符串,表示文件路径;
  • sep: 字符串,指定分割符,默认是’,’;
  • header:数值, 指定第几行作为列名(忽略注解行),如果没有指定列名,默认header=0; 如果指定了列名header=None;
  • names: 列表,指定列名,如果文件中不包含header的行,应该显性表示header=None。
  • skiprows:列表,需要忽略的行数(从0开始),设置的行数将不会进行读取。
  • na_values:列表,设置需要将值替换成NAN的值,pandas默认NAN为缺省,可以用来处理一些缺省、错误的数值。
  • encoding:字符串,用于unicode的文本编码格式。例如,"utf-8"或"gbk"等文本的编码格式。
  • nrows:需要读取的行数。
(4)利用pandas写入CSV文件

写入CSV文件:

import pandas as pd
import os
# 获取当前文件父目录路径
father_path = os.getcwd()
# 保存数据文件路径
path_csv = father_path+r'\data01\temp_city.csv'
# 写入数据(列名+列值)
data = {"站点名": ["北京北", "北京东", "北京", "北京南", "北京西"],
"代号": ["VAP", "BOP", "BJP", "VNP", "BXP"]}
# 数据初始化为DataFrame对象
df = pd.DataFrame(data)
# 数据写入
df.to_csv(path_csv)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

运行结果:

#yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据_CSV_04

函数解析:

to_csv(path_or_buf,sep,na_rep,columns,header,index)

  • path_or_buf:字符串,文件名、文件具体、相对路径、文件流等;
  • sep:字符串,文件分割符号;
  • na_rep:字符串,将NaN转换为特定值;
  • columns:列表,选择部分列写入;
  • header:None,写入时忽略列名;
  • index:False则选择不写入索引,默认为True。

四、结语

坚持 and 努力 : 终有所获。

思想很复杂,

实现很有趣,

只要不放弃,

终有成名日。

—《老表打油诗》

下期见,我是爱猫爱技术的老表,如果觉得本文对你学习有所帮助,欢迎点赞、评论、关注我!

版权声明
本文为[简说Python]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_13334898/4690458

  1. [learning notes] Python - pyecarts
  2. Python automated operation and maintenance -- actual combat (I)
  3. Python 多分支语句的三种结构
  4. Python 输出指定范围的闰年
  5. Fatal Python error: init_ fs_ encoding: failed to get the Python codec of the filesystem encoding
  6. Using Python to obtain a video address is as simple as
  7. #yyds干货盘点# 6. Python 元组,不可变的列表,滚雪球学 Python
  8. Yyds Dry Inventory # 6. Python tuples, invariant List, snowball Learning Python
  9. You cannot enter the registration page using Django registration redux
  10. 笨办法学Python第十八天:更多文件操作
  11. Python编辑代码,帮个忙呗
  12. pandas转换object为int失败了,有人能解答吗
  13. python解释题,解释这串,所代表的意思
  14. 用python用while语句写1000以内能被5和9整除的数和个数
  15. #python 我写了一个“饭店”程序
  16. Comprehensive application of Python foundation -- Development
  17. Écrivez en python le nombre et le nombre d'entiers qui peuvent être divisés par 5 et 9 jusqu'à 1000 dans une instruction while
  18. python3.7 FileNotFoundError: [WinError 2] 系统找不到指定的文件。
  19. 最全面的Python重点知识汇总
  20. You can learn Python articles without reading online classes (day 4)
  21. You can learn Python articles without reading online classes (the third day)
  22. python中 我想爬取一个网页,我在cmd中pip list中已经把requests 以及bs4 弄好了 但是他还是提示我没有那个模块
  23. You can learn Python articles without reading online classes (the next day)
  24. You can learn Python articles without reading online classes (the first day)
  25. 在Python和Go项目之后使用Rust的经验分享 - scaleway
  26. 使用PyO3从Python调用 Rust:加速Python
  27. Python 3.7 filenotfounderror: [winerror 2] le système n'a pas pu trouver le fichier spécifié.
  28. Python 一切皆对象
  29. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  30. 求各位亲们可以解答一下嘛,为什么跑不出来呀,大学Python
  31. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  32. python飞机大战如何让飞机始终在界面中,不能跑出界面
  33. Python代码阅读(第63篇):数字奇偶性
  34. python建立⼀個圖形介⾯應⽤(GUI app)
  35. python接口自动化的html格式报告以邮件形式发送展示的原文很丑怎么处理
  36. 针对初学者,我建议你学这 3 个 Python AutoEDA 工具包
  37. #yyds干货盘点#Python-爬虫_urlib一个类型和六个方法
  38. Pour les débutants, je vous recommande d'apprendre ces 3 kits autoeda Python
  39. 我想问python怎么入门嘞?求各路人士
  40. Summary of today's Django lessons: data reverse query triggers error field 'score_ jieshoufankui‘ expected a number but got ‘‘-20211109
  41. 关于#python_while循环的写法#的问题,如何解决?
  42. Python异常处理中异常的种类有哪些?你知道几个?
  43. Python异常處理中异常的種類有哪些?你知道幾個?
  44. Quels sont les types d'exceptions dans la gestion des exceptions python? Combien en savez - vous?
  45. À propos de # Python Comment résoudre le problème de l'écriture de la Boucle while?
  46. Python如何操作system.data.sqlite数据库
  47. python数字游戏,让你欲罢不能
  48. Python中的可迭代对象、迭代器、For循环工作机制、生成器
  49. 一个从没接触过编程的人,如何自学进入Python行业?
  50. 一份超级实用的 Python ”技巧“清单
  51. Python 程序员给上路初学者的3点忠告
  52. 3 conseils pour les débutants sur la route par les programmeurs Python
  53. Une liste de conseils Python super pratiques
  54. Comment quelqu'un qui n'a jamais été en contact avec la programmation peut - il apprendre à entrer dans l'industrie python?
  55. Objets itérables, itérateurs, pour le mécanisme de travail circulaire, générateurs en python
  56. Les Jeux de chiffres Python vous font vous arrêter
  57. Comment Python fonctionne avec la base de données system.data.sqlite
  58. Python之html与markdown互相转换
  59. Python之html與markdown互相轉換
  60. Conversion HTML et markdown de Python