python数据分析之pandas(读写外部数据文件)篇

pandas简介

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一,pandas是python的一个数据解析包 ,这么以来我们使用pandas的时候需要下载这个模块,用pip install pandas即可,今天我们就来分享一下pandas到底可以读写那些外部文件。

1.文本文件(txt,csv)

在pandas中都使用pandas.read_csv()方法读取txt和csv,同时也使用to_csv()方法把数据写入text和csv中。
首先我们了解一下文本的读取,我们现在知道读取的方法还需知道我们读取文件的位置(filepath_or_buffer)以及 编码格式(encoding),其中header表示我们把读入的数据一行或几行作为列名,默认为header=0,表示第一行作为列名,分割符(sep)默认为一个英文逗号,备选分隔符(delimiter)当指定了delimiter则sep失效,names属性可以为读取的列加上指定的名。

import pandas
# csv文件读取
csv = pandas.read_csv("./a.csv",encoding="utf-8",header=0,delimiter=",",sep=".")
print(csv)

在这里插入图片描述

import pandas
# txt文件读取
txt = pandas.read_csv('./c.txt',encoding="utf-8",header=0,sep=",")
print(txt)

在这里插入图片描述

import pandas
# txt文件读取
txt = pandas.read_csv('./c.txt',encoding="utf-8",header=0,sep=",",names=["第一列","第二列"])
print(txt)

在这里插入图片描述
用read_csv这个方法csv和text都可以读取,这样文本操作更加简单,下来让我们了解一下pandas的写入文本操作。

在pandas中我们用to_csv()方法可以将数据写入文本文件中,在写入的时候我们要知道将数据写入到那个路径(path_or_buf)下的文件,指定指定字符集编码(encoding),分隔符(sep)默认为 逗号‘,’,header为要添加的列表重新指定列名,columns重新指定写入文件中的顺序,index_label设置索引列名 。

import pandas
# csv文件读取
csv = pandas.read_csv("./a.csv",encoding="utf-8",header=0,delimiter=",",sep="\t")
# print(csv)
# 数据写入
csv.to_csv("./d.txt",sep=",",header=['第一列','第二列'],columns=['第一列','第二列'],index_label="列数")

在写入的时候会判断如果d.csv不存在,则会新建一个d.csv文件之后再写入,如果该文件夹已经存在,则会清空里面的内容然后在写入,写入后的内容如下
在这里插入图片描述

2.excel文件

首先在读取 excel文件之前,我们需要安装读取excel的依赖包(xlrd),可以通过pip install xlrd命令下载。
pandas读取excel数据通过reade_excel方法,该方法通过io读取文件,可以是文件路径,文件网址,file-like对象,xlrd workbook对象。通过sheet_name默认就是0,读取第一张Sheet,

import pandas
# 读取Excel
xel = pandas.read_excel("./b.xlsx",sheet_name=0)
print(xel)

在这里插入图片描述
也可以同时读取sheet_name=[0,1,Sheet3]第一张,第二张和名为Sheet3中的数据.

import pandas
# 读取Excel
xel = pandas.read_excel("./b.xlsx",sheet_name=[0,'Sheet2'])
print(xel[0])

在这里插入图片描述

import pandas
# 读取Excel
xel = pandas.read_excel("./b.xlsx",sheet_name=[0,'Sheet2'])
print(xel['Sheet2'])

在这里插入图片描述
也可以通过sheet_name=None全部读取

import pandas
# 读取Excel
xel = pandas.read_excel("./b.xlsx",sheet_name=None)
print(xel['Sheet1'])
print(xel['Sheet2'])

在这里插入图片描述
通过header,指定Sheet表头,默认值是0,表示第一行最为表头,可选用多行作为表头,通过index_col指定行标签默认值为None,表示自动生成以0开始的整数作为行标签。

import pandas
# 读取Excel
xel = pandas.read_excel("./b.xlsx",sheet_name=0,header=[0,2],index_col=0)
print(xel)

在这里插入图片描述
通过usecols指定需要加载的列,默认值None:表示加载所有列。

import pandas
# 读取Excel
xel = pandas.read_excel("./b.xlsx",sheet_name=0,header=0,usecols=[0,1])
print(xel)

在这里插入图片描述
我们将数据写入excel得通过openpyxl模块中的to_excel()方法,首先我们通过pip install openpyxl命令安装本模块,然后使用to_excel()方法写入。
然后我们通过excel_writer参数指定excel文件的路径,sheet_name参数指定写入到哪张工作表,默认为Sheet1,float_format参数指定浮点型数的格式(float_format="%%.2f"),na_rep参数在写入数据时用什么代替空值,header参数为字符串列表写入表头,index参数是否要写入行号,默认为True,columns参数指定写入文件的列。

import pandas
# 写入excel
x = pandas.read_excel("./b.xlsx",sheet_name=0)
# print(x)
y = x.to_excel('./xl.xlsx',sheet_name='Sheey1',na_rep='--',header=['第一列', '第二列'],index=False)

在这里插入图片描述

3.剪切板

我们通过pandas中的read_clipboard()方法获取剪贴板中的内容,我们对于少的数据我们只需复制一下,然后直接处理保存,减少读取建表的好多麻烦。

import pandas
# 剪切板读取
csv1 = pandas.read_clipboard()
print(csv1)

在这里插入图片描述

4.mysql数据库

实现pandas读取数据表,在读取之前,先要安装python读取mysql的第三方库,通过 pip install pymysql命令就可以安装这个库,pandas通过read_mysql()方法读取数据库数据。
还需要通过conn数据库连接通过pymysql创建,执行查询的SQL语句。

import pandas
import pymysql
# 连接数据库
conn = pymysql.connect(host="localhost",user="root",password="123456",db="account",charset="utf8")
sql = "select * from test"
df = pandas.read_sql(sql,conn)
print(df)
conn.close()

在这里插入图片描述

5.mongodb数据库

pandas中并没有直接读取mongodb数据库的方法提供,。在开始之前,用pip install pymongo命令可以安装
既然pandas中没有直接读取mongodb数据库的方法,我们就需要用将数据用pymongo读取出来

import pandas
import pymongo
client = pymongo.MongoClient(host='localhost', port=27017)
db = client['eleme']
db.authenticate('chb', '123456', 'admin')
collection = db['test']
data = collection.find()
for item in data:
print(item)
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值