数据分析之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中文编码就可以
参数字段还有很多。。。这里只列举一些可能比较常用的,用的时候选几个需要的即可。
)
写入
方法一
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’-->以写方式打开,如果不存在则创建
,
,
,
,
我今天还没写完。。。。数据库的部分还没写。。明天继续写。下班了下班了!
来源:CSDN
作者:qq_42274565
链接:https://blog.csdn.net/qq_42274565/article/details/103470268