热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonpandas处理excel表单整合_使用python处理excel表格——pandas(1)

一.基本概念excel文件打开之后,该文件叫工作簿(workbook)。每个工作簿中包含多张表单(worksheet),正在操作的表单被成为活跃的表单(activew

一.基本概念

excel文件打开之后,该文件叫工作簿(workbook)。

每个工作簿中包含多张表单(worksheet),正在操作的表单被成为活跃的表单(active worksheet)。

每一张表单中,有行(row),列(column)。行号:1,2,3;列号A,B,C。

特定的行和列构成单元格(cell)

表单中还会含有索引(index)

二.内容

1.创建文件

A.创建空表格

import pandas as pd

#创建表格,dataframe()空括号表示创建的是空表格

#dataframe为数据帧

df=pd.DataFrame()

#保存路径

df.to_excel('D:/output.xlsx')

print('Done!')

B.创建非空表格

import pandas as pd

#创建表格,dataframe()空括号表示创建的是空表格

#dataframe为数据帧

df=pd.DataFrame({'ID':[1,2,3],'NAME':['Wang','Zhang','Lee']})

#保存路径

df.to_excel('D:/output.xlsx')

print('Done!')

效果:

前面多出来的这一列为dataframe的索引,因为我们没有给他指定索引,所以其自动生成。如果我们想要拿ID这一列做索引,则:

import pandas as pd

#创建表格,dataframe()空括号表示创建的是空表格

#dataframe为数据帧

df=pd.DataFrame({'ID':[1,2,3],'NAME':['Wang','Zhang','Lee']})

df=df.set_index('ID')

#保存路径

df.to_excel('D:/output.xlsx')

print('Done!')

2.读取文件

【演示文件情况】

该文件内容全为虚构,没有任何含义,仅作演示使用

共三个sheet:sheet1、sheet2、sheet3

其中(不包含标题行):

sheet1——(5,2)、sheet2——(6,4)、sheet3——(7,3)

A.读取整个表格

(1)读取有多个sheet的excel

pandas读取的常用格式pd.read_excel(file, sheet_name),其中sheetname可以使用数字进行替代,从0开始,默认为0

pandas写入的格式为data.to_excel(‘filename’,sheet_name=‘A’)

import pandas as pd

import pandas as pd

path = 'D:\python学习\表格/people.xlsx'

#读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字

#此时使用DataFram,会报错

data = pd.read_excel(path,None)

print(data.keys())#查看sheet的名字

for sh_name in data.keys():

print('sheet名字:',sh_name)

#获得每一个sheet中的内容

sh_data = pd.DataFrame(pd.read_excel(path,sh_name))

print(sh_data)

结果:

(2).title在首行

表格样式(sheet1):

import pandas as pd

people=pd.read_excel('D:/people.xlsx')#读取文件

print(people.shape)#读取行列数

print(people.columns)#读取列名

print(people.head(3))#查看表格内容—head,默认为5行

print('=========================')#分割行

print(people.tail(3))#查看表格内容—tail

结果:

(3)title不在首行

pandas在读取数据的时候默认,会默认第0行为title。

-title之前的行为空

正常读取文件,pandas可以正常识别

-title之前的行非空

只要有一行是脏的,就需要

表格样式(sheet1):

import pandas as pd

people=pd.read_excel('D:/people2.xlsx',header=1)#读取文件

print(people.columns)#读取列名

-无title

import pandas as pd

people=pd.read_excel('D:/people2.xlsx',header=None)#读取文件

people.columns=['名称','数量']#人为设定列名

#将‘名称’列设为索引,且在原表上进行修改

people.set_index('名称',inplace= True)

print(people.columns)#读取列名

people.to_excel('D:/output.xlsx')#输出为output.xlsx

print('DONE!')

(如果不认为的设定,则自动生成0,1,2,3,为title)

列名只有’数量’,‘名称’变为了索index

(4).已知index列

在使用pandas进行excel数据表读取的时候,如不特定指明第一列为index,则其会默认加一列索引。所以,如若已知某列为index,则需指明。

import pandas as pd

#读取文件,且指定‘名称’列为索引

df=pd.read_excel('D:/output.xlsx',index_col='名称')

df.to_excel('D:/output2.xlsx')#生成新的excel文件

print('Done!')

B.读取某一行、列

(1)读取整个行/列

import pandas as pd

path = 'D:\python学习\表格/people.xlsx'

data = pd.DataFrame(pd.read_excel(path))#读取数据

print('行的索引名称:',data.index)#获取行的索引名称

print('列的索引名称:',data.columns)#获取列的索引名称

print('======================')#分割线

print(data['名称'])#获取列名为姓名这一列的内容

print('======================')#分割线

print(data.loc[0])#获取行名为0这一行的内容

结果:

(2)读取部分行(筛选)

筛选使用的是 data.loc[列名称 = 提取的信息]

import pandas as pd

path = 'D:\python学习\表格/people.xlsx'

data = pd.DataFrame(pd.read_excel(path))#读取数据

#获取列名为名称,内容为“上海市”的内容

result = data.loc[data['名称'] == '上海市']

print(result)

结果:

3.生成行、列

行列视为序列(seties),则单元格就是不同的序列中的元素。

A.创建series

-从directory转为series

【基础知识】字典-键值对

import pandas as pd

d={'x':100,'y':200,'z':300}#生成字典,由基本键值对构成

print(d.keys())#字典keys集合

print(d.values())#字典values集合

print(d['x'])#查看x:100这个键值对

结果:

将directory转变为series,则keys变为indexs,将values转变为data。

则生成series:

import pandas as pd

d={'x':100,'y':200,'z':300}#生成字典

s1=pd.Series(d)

print(s1)

print(s1.index)

-直接生成series

import pandas as pd

L1=(100,2,30)

L2=('x','y','z')

s1=pd.Series(L1,index=L2)

#或者s1=pd.Series((100,2,30),index=('x','y','z'))

print(s1)

B.创建行、列

将series按照不同的方法加入dataframe中,就可以创建不同的行和列:

以list的形式将序列加入dataframe,则把不同的序列看为一行,序列的名字看为行号;以dictory的形式将序列加入dataframe,则把不同的序列看为一列,序列的名字看为列名。

-创建列

以directory加入

每个list的index与dataframe中的index呈对齐关系。

“index-index一一对齐”

import pandas as pd

s1=pd.Series([1,2,3],index=[1,2,3],name='A')#index特指行号

s2=pd.Series([10,20,30],index=[1,2,3],name='B')

s3=pd.Series([100,200,300],index=[1,2,3],name='C')

df=pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})

print(df)

“index-index不对齐”

import pandas as pd

s1=pd.Series([1,2,3],index=[1,2,3],name='A')#index特指行号

s2=pd.Series([10,20,30],index=[1,2,3],name='B')

s3=pd.Series([100,200,300],index=[2,3,4],name='C')

df=pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})

print(df)

在空值区会自动以NaN填充(NaN:not a number)

-创建行

以list形式

import pandas as pd

s1=pd.Series([1,2,3],index=[1,2,3],name='A')#index特指行号

s2=pd.Series([10,20,30],index=[1,2,3],name='B')

s3=pd.Series([100,200,300],index=[1,2,3],name='C')

df=pd.DataFrame([s1,s2,s3])

print(df)

本文地址:https://blog.csdn.net/mmmmmyyyy/article/details/107641294

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!



推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • MATLAB函数重名问题解决方法及数据导入导出操作详解
    本文介绍了解决MATLAB函数重名的方法,并详细讲解了数据导入和导出的操作。包括使用菜单导入数据、在工作区直接新建变量、粘贴数据到.m文件或.txt文件并用load命令调用、使用save命令导出数据等方法。同时还介绍了使用dlmread函数调用数据的方法。通过本文的内容,读者可以更好地处理MATLAB中的函数重名问题,并掌握数据导入导出的各种操作。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
author-avatar
StrAiGhT-OuT
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有