数据分析之Pandas学习笔记(四)(文件读写,数据库读写)

蹲街弑〆低调 提交于 2019-12-10 18:57:45

数据分析之Pandas学习笔记(三)(文件读写,数据库读写)

CSV文件(xxx.csv)

读取pd.read_csv()

pandas.read_csv()官方文档
参数详解
有关读取csv文件当中关于header和name表头的处理

当然你也可以用最古老的读取文件的方式
下面介绍用pandas模块读取csv文件

pd.read_csv(
			 '',
			 header=None,		    什么时候填None什么时候填0看上头链接。
			 names=[],    			一般和header结合使用
			 
			 index_col='message',	将‘message’列作为行索引
			 index=[],
			 columns=[],
			 usecols=[0],			取第一列   [0,6]取一,七两列
			 
			 seq=',',				以逗号为分隔‘\S+’通过去空格的正则分隔符
			 thousands=',',			千位分隔符
			 
			 nrows=500,				需要读取的行数为500行
			 skiprows=[0,2,3],		跳过文件的1,3,4行
			 
			 na_values=[],			一组用于替换NA的值
			 na_rep='Null',			用Null替换NaN
			 
			 iterator=,				返回一个TextParser以便逐块读取文件
			 chunksize=1000,        返回一个TextParser以便逐块读取文件
			 
			 converters={'foo':f},  对foo列的所有值应用函数f
			 squeeze=,				如果解析后只剩一列,返回Series
			 parse_data=False,	    尝试将数据解析为日期,可指定行列
			 encoding='gbk', 默认读取utf-8编码会报错,改成gbk中文编码就可以

参数字段还有很多。。。这里只列举一些可能比较常用的,用的时候选几个需要的即可。	 
)

Standard Encoding官方文档

写入

方法一
df.to_csv(’…’)
pandas.to_csv()官方文档

这个真的超级Nice~你要写入的路径的文件如果不存在它也会自动创建,不需要你预先创建
不过直接这样写一个文件路径的参数的话,会把行列索引也一起写进去了。
(真是,直白白的 ,所见即所得= =。。)

不过我才不想把索引写上去呢,我查阅了一下官方文档
我们阔以通过加index=False 这个字段把行索引给去了。

列索引不想写进去的话,加header=None就完事了
思路:DataFrame对象.to_csv('保存路径+文件名')  
										//index=False ? header=None ?

	 这个DataFrame对象,就是你设计的'表'
	 
	 说通俗点,就好比你在pycharm里print看到的那些DataFrame表一样,你将这个表
	 改成你想要样式和内容,然后.to_csv('...')就完事了~
	 
	 至于这个表 怎么设计,设计成什么样,写什么内容,取决于你自己的idea了,
	 等我笔记写完,有空了,再在下面举几个例子好了。。。

方法二
一般文件写入,with open file这样
csv文件写入
首先你要了解csv文件的构造,
它是一行一行的list形式,以逗号分隔
所以你在一般文件写入操作的时候,就要一行一行写,每行以list形式写。

上面那个CSDN链接可以点进去看看,写的很好!

import csv

with open('test01.csv','w') as f:
    write = csv.writer(f)
    write.writerow(['country','language'])	#这里要以list形式写入,
    										 #writer会在新建的csv文件中,
    										#一行一行写入
    										
with open 机制不需要f.save(),它在文件写完自动会关闭,f.save()写不写无所谓。

当然你肯定不想就写一行,想写多行,

可以去上面那个链接去看看写入的样式,然后自己设计。

Excel文件(xxx.xlsx)

其实 Excel文件 和 csv文件  并没啥太大的区别

我记得没错的话  linux系统的的 csv文件 拖到Windows桌面的时候,
直接另存为,把文件格式由.csv改成.xlsx   然后再把编码格式改成utf-8啥的 
应该就阔以打开了,无中文乱码

当然pandas针对Excel也有相应的文件读写方法,多学一点总是好的~
下面一起来瞧一瞧..

读取

当然读写都阔以通过最古老的open file来操作,这里不多提了。
下面介绍pandas的读取方法:
pd.read_excel()

pd.read_excel(
			  '',			 文件路径+文件名
			  sheet_name=0,  工作表名,
			  				 就是你下面的那个什么Sheet1 Sheet2啥的
			  				 可以通过索引获取
              header=None,
              names=None,
              usecols=[1],

Emmm...好多参数字段应该都和read_csv里面字段差不多,阔以多试试
一般打开的话,我觉得上面几个参数选几个用用够了。

)

写入

df.to_excel()
pandas.to_excel()官方文档
pandas对Excel的写入也类似csv
不过它要额外去下一个包openpyxl -->pip3 install openpyxl
不然你也会和我一样报错!
在这里插入图片描述
一开始没仔细看。。。我还以为是NotFound这个文件,还在想。。。Pandas对CSV那么友好对Excel这么烂 = =。还去查了如何代码创建文件。。。兴奋的填完了之后跑了一遍,还是报同样的错了。。。。回过头来仔细一看。。。。Module!模块!= =我沙雕了。。是没这个模块。而不是文件找不到。

不过这样也并无大碍。。多学一点总是好的。。 = =~
下面开始干活!~

import pandas as pd

df = pd.read_csv('C:\\Users\\Administrator\\Desktop\\demo(1).csv',encoding='gbk')
df01 = df.head().copy()
print(df01)

我懒得自己设计表格了,
随便拿个表过来截取里面的一段,当做一个DataFrame对象df01
然后再.to_excel()做演示好了。

f_path = 'C:\\Users\\Administrator\\Desktop\\test01.xlsx'
df01.to_excel(f_path,index=False)

print('OK!{}文件写入成功!'.format(f_path.split('\\')[-1]))

Pycharm中print如下:
在这里插入图片描述
看来是写入成功了!去Excel表中看一看结果。
在这里插入图片描述好的!是我想要的格式。。。
唯一有一丢丢小缺憾,。就是它的列索引加粗了= =。算了懒得计较这点点小问题。

用代码自动创建文件,文件夹

自从学了python我就变得很懒、懒到文件都不想手动建了。尤其是学习了自动化爬虫,就是那种(selenium+浏览器)自动打开网页去爬数据,就是速度稍稍慢了一点,当然也可以无头浏览器爬网页数据。我希望有一天我上班,不用双手对着键盘敲,直接跑一遍python文件,我坐旁边喝喝茶就行了 = =哇哈哈哈。。不过目前我还没那么厉害。。。

有点扯远了。我网上查了好多资料,看到了最基本的OS命令操作!!
没错!你创目录还是文件都阔以,,下面附上OS操作创建文件的传送门!写的很好
OS模块创建文件,或者文件夹
一般性普通文件的创建和各种OS操作

看完了,我们大致了解到~

emmm创建文件夹倒是阔以用os模块

创建文件,还得用最基础的文件读写,中的‘w’-->以写方式打开,如果不存在则创建

,
,
,
,
我今天还没写完。。。。数据库的部分还没写。。明天继续写。下班了下班了!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!