python pandas excel数据处理_Python处理Excel数据-pandas篇

Python处理Excel数据-pandas篇

非常适用于大量数据的拼接、清洗、筛选及分析

在计算机编程中,pandas是Python编程语言的用于数据操纵和分析的软件库。特别是,它提供操纵数值表格和时间序列的数据结构和运算操作。它的名字衍生自术语“面板数据”(panel data),这是计量经济学的数据集术语,它们包括了对同一个体的在多个时期上的观测。它的名字是短语“Python data analysis”自身的文字游戏。

目录

Python处理Excel数据-pandas篇

一、安装环境

1、打开以下文件夹(个人路径会有差异):

2、按住左Shift右键点击空白处,选择【在此处打开Powershell窗口(s)】

3、输入以下代码通过Pip进行安装Pandas库

二、数据的新建、保存与整理

1、新建数据保存到Excel

2、读取txt文件,将内容保存到Excel(引用B站UP 孙兴华示例文件)

3、读取Excel及DataFrame的使用方式

三、数据排序与查询

1、排序

例1:按语文分数排序降序,数学升序,英语降序

例2:按索引进行排序

2、查询

单条件查询

多条件查询

使用数据区间范围进行查询

使用条件表达式进行查询

一、安装环境

1、打开以下文件夹(个人路径会有差异):

C:UsersAdministratorAppDataLocalProgramsPythonPython38Scripts

2、按住左Shift右键点击空白处,选择【在此处打开Powershell窗口(s)】

38f8e304cefb0b95b12750adbc8a94b5.png

8d8a235be10d6909e14c9413d50bb368.png

3、输入以下代码通过Pip进行安装Pandas库

./pip install pandas

9cc141aa023b9b9574abbd1b65cac628.png

安装完成后会有提示:Successfully installed pandas

0bcdc314b68a0a7e01c0afb95422eaf4.png

二、数据的新建、保存与整理

1、新建数据保存到Excel

import pandas as pd

path = 'E:python测试测试文件.xlsx'

data= pd.DataFrame({'序号':[1,2,3],'姓名':['张三','李四','王五']})

data= data.set_index('序号') #设置索引列为'序号'列

data.to_excel(path)

2、读取txt文件,将内容保存到Excel(引用B站UP 孙兴华示例文件)

Txt文件:

E:python练习.txt

男,杨过,19,13901234567,终南山古墓,2000/1/1

女,小龙女,25,13801111111,终南山古墓,2000/1/2

男,郭靖,40,13705555555,湖北襄阳,2020/1/1

女,黄蓉,35,13601111111,湖北襄阳,2000/1/4

男,张无忌,18,13506666666,明教,2000/1/5

女,周芷若,17,13311111111,明教,2000/1/6

女,赵敏,17,18800000000,明教,2000/1/7

import pandas as pd

path = r'E:python练习.txt'

data = pd.read_csv(path,header=None,names=['性别','姓名','年龄','地址','号码','时间'])

data.to_excel( r'E:python练习.xlsx') #将数据储存为Excel文件

4b1bad6dd32c7597f607761d706e451e.png

3、读取Excel及DataFrame的使用方式

import pandas as pd

path = 'E:python测试\数据查询.xlsx'

data = pd.DataFrame(pd.read_excel(path,sheet_name='Left',header=1,converters={'A': str})) # converters={'A': str} 设置A列格式为文本

data.index # 查看索引

data.values # 查看数值

data.sort_index() .sort_values() # 按数值排序

data.head( 5 ) # 查看前5行

data.tail( 3 ) # 查看后3行

data.values # 查看数值

datashape # 查看行数、列数

data.isnull() # 查找data中出现的空值

data.unique() # 查看唯一值

data.columns # 查看data的列名

data.sort_index() # 索引排序

data.sort_values() # 值排序

pd.merge(data1,data2) # 合并,以下为左连接

pd.merge(data1,data2,on=[a],how='left')

pd.concat([data1,data2]) # 合并,与merge的区别,自查**(特别注意要使用[])**

pd.pivot_table( data ) # 用df做data透视表(类似于Excel的数透)

data.reset_index() # 修改、删除原有索引

data.reindex() # 重置索引,如下示例

data=data.reindex(columns=['商品名称', '规格', '对应车型类别', '备注', '新增的一列'], fill_value='新增的一列要填的值')

a=data['x'] # 取列名为'x'的列,格式为series

b=data[['x']] # 取列名为'x'的列,格式为Dataframe

c=data[['w','z']] # 取多列时需要用Dataframe的格式

data.loc['A'] # 取行名为'A'的行

data.loc[:,['x','z'] ] # 表示选取所有的行以及columns为x,z的列

data['name'].values # 取列名为'name'的列的值(取出来的是array而不是series)取单行后是一个Series,Series有index而无columns,可以用name来获取单列的索引

data.head(4) # 取头四行

data.tail(3) # 取尾三行

**data= data.iloc[2:, 2:20] # 选择2行开始、2-11列**

[m, n] = data.shape # 对m,n进行复制,m等于最大行数 n等于最大列数

data.notnull() # 非空值

data.dropna() # 删除空值

data.dropna() # 删除有空值的行

data.dropna(axis=1) # 删除有空值的列

data.dropna(how='all') # 删除所有值为Nan的行

data.dropna(thresh=2) # 至少保留两个非缺失值

data.strip() # 去除列表中的所有空格与换行符号

data.fillna(0) # 将空值填充0

data.replace(1, -1) # 将1替换成-1

data.fillna(100) # 填充缺失值为100

data.fillna({'语文':100,'数学':100,}) # 不同列填充不同值

data.fillna(method='ffill') # 将空值填充为上一个值

data.fillna(method='bfill') # 将空值填充下一个值

data.fillna(method='bfill',limit=1) # 将空值填充下一个值,限制填充数量为1

三、数据排序与查询

1、排序

例1:按语文分数排序降序,数学升序,英语降序

import pandas as pd

path = 'c:/pandas/排序.xlsx'

data= pd.read_excel(path ,index_col='序号')

data.sort_values(by=['语文','数学','英语'],inplace=True,ascending=[False,True,False])

print(data)

例2:按索引进行排序

import pandas as pd

path = 'c:/pandas/排序.xlsx'

data = pd.read_excel(路径,index_col='序号')

data.sort_index(inplace=True)

print(data)

2、查询

单条件查询

import pandas as pd

path = 'c:/pandas/筛选.xlsx'

data = pd.read_excel(path ,index_col='出生日期')

print(data.loc['1983-10-27','语文'])

多条件查询

import pandas as pd

path = 'c:/pandas/筛选.xlsx'

data = pd.read_excel(path ,index_col='出生日期')

print(data.loc['1983-10-27',['语文','数学','英语']])

使用数据区间范围进行查询

import pandas as pd

path = 'c:/pandas/筛选.xlsx'

data = pd.read_excel(path,index_col='出生日期')

print(data.loc['1983-10-27':'1990-12-31',['语文','数学','英语']])

使用条件表达式进行查询

import pandas as pd

path = 'c:/pandas/筛选.xlsx'

data = pd.read_excel(路径,index_col='出生日期')

print(data.loc[(data['语文'] > 60) & (data['英语'] < 60),:]) #这里的 ,: 指的是列取全部

今天的分享到此就结束啦,后续还会继续更新~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Proe Top-Down设计演示

前段时间有网友问我&#xff0c;proe 里面有没有装配设计中当某一零件尺寸需要修改时&#xff0c; 与其相关的零件尺寸都需要随之做相应改变的法子。我认为top-down是很好的选择。 下面介绍一下top-down的理论&#xff1a; 就按照产品的功能要求先定义产品架构并考虑组件与零件…

python映射实体类_【HIBERNATE框架开发之二】第一个HIBERNATE-ANNONATION项目(采用@ENTITY、@ID直接映射实体类)...

紧接上一篇&#xff0c;这里Himi直接copy上一篇创建的HelloHibernate项目&#xff0c;然后改名为&#xff1a;HelloAnnonation,Ok&#xff1b;OK&#xff0c;准备工作&#xff1a;首先第一步&#xff0c;继续再我们自定义的user libraries 中添加Annotation所需的包&#xff0c…

从Java集成Active Directory

首先&#xff0c;您将需要设置Active Directory&#xff0c;以便可以运行和测试代码。 如果&#xff08;像我一样&#xff09;没有一台装有Windows Server的计算机&#xff0c;那么即使在Mac OSX上&#xff0c;也可以通过这种方法设置Active Directory。 您要做的第一件事是在…

编译 php mysql 依赖包_MySQL 5.5.15源码包编译安装

mysql果然是不愧是目前最火的数据库&#xff0c;自从mysql5.5.8之后&#xff0c;mysql的源码包编译安装都要用到cmake来进行编译了&#xff0c;编译的过程没有本质mysql果然是不愧是目前最火的数据库&#xff0c;自从mysql5.5.8之后&#xff0c;mysql的源码包编译安装都要用到c…

云计算之路-阿里云上:基于Xen的IO模型进一步分析“黑色0.1秒”问题

在发现云服务器读取OCS缓存的“黑色0.1秒”是发生在socket读取数据时&#xff0c;而且是发生在读取开始的字节&#xff0c;甚至在socket写数据时&#xff08;比如写入缓存key&#xff09;也会出现超过50ms的情况&#xff0c;我们的好奇心被激发到一个新的高度。 根据我们的实测…

ARIMA模型建模步骤

ARIMA模型建模步骤一. 绘制时序图判断序列是否有明显的趋势或周期二. 单位根检验检验方法ADFDFGLSPPKPSSERSNP前三种有有关常数与趋势项假设&#xff0c;应用不方便&#xff0c;建议少用。后三种是去除原序列趋势后进行检验&#xff0c;应用方便。原假设6种方法除KPPS外&#x…

WT2605C音频蓝牙语音芯片:单芯片实现蓝牙+MP3+BLE+电话本多功能应用

在当今的电子产品领域&#xff0c;多功能、高集成度成为了一种趋势。各种产品都需要具备多种功能&#xff0c;以满足用户多样化的需求。针对这一市场趋势&#xff0c;唯创知音推出了一款集成了蓝牙、MP3播放、BLE和电话本功能的音频蓝牙语音芯片——WT2605C&#xff0c;实现了单…

mysql as join_mysql as 别名与 join 多表连接语法

在MySQL中&#xff0c;使用AS关键字为字段、表、视图取别名&#xff0c;或者不用as&#xff0c;用空格隔开&#xff1a;SELECT (SELECT id a,title b FROM blog c limit 1)d;使用字段别名&#xff0c;可以帮助我们有效的组织查询的输出结果。---------------------------------…

'固定' table宽度,走起!

为了让表格能够填充屏幕(剩余空白区域)&#xff0c;常将其宽度属性定义为&#xff1a;100%&#xff0c;单元格也是用百分数来定义。 但这样就会出现问题&#xff1a; 如果单元格中的文本超过宽度限制&#xff0c;就会自动换行&#xff0c;高度自动增高&#xff0c;导致整个表格…

python中view的用法_APIview使用

ModelVIewSet 是对 APIView 封装ModelSerializer 是对 Serializer1.1 在user/urls.py中添加路由urlpatterns [ path(apiview/, views.UserInfoViewSet.as_view()), ]1.2 创建user/serializers.py写序列化器serializers.ModelSerializer 和 serializers.Serializer field参数…

spring mvc 教程_Spring MVC开发–快速教程

spring mvc 教程这是我们的JCG合作伙伴之一&#xff0c;来自Manoj的有关使用Spring开发Web应用程序的简短教程&#xff0c; 网址为“ The Khangaonkar Report ”。 &#xff08;注意&#xff1a;对原始帖子进行了少量编辑以提高可读性&#xff09; Spring MVC使用基于模型视图…

实时监听输入框值变化的完美方案:oninput onpropertychange

实时监听输入框值变化的完美方案&#xff1a;oninput & onpropertychange 原文:实时监听输入框值变化的完美方案&#xff1a;oninput & onpropertychange在 Web 开发中经常会碰到需要动态监听输入框值变化的情况&#xff0c;如果使用 onkeydown、onkeypress、onkeyup 这…

R语言对矩阵按某一列排序

[plain] view plaincopy a <- c(5,4,3,2,1) b <- c(1,2,3,4,5) c <- cbind(a,b) [plain] view plaincopyc[order(c[,1]),] #按第一列递增排序 转载于:https://www.cnblogs.com/jamesf/p/4751573.html

java 是用什么写的_java用什么写的

java用什么写的JAVA本身就是一门编程语言&#xff0c;它编译生成的文件运行在JVM上(java虚拟机)。JVM是由c语言和汇编语言开发的。基于此之上就是java了&#xff0c;虚拟机是起到解析执行的作用。JVM是java语言最大的特点&#xff0c;java的优缺点也是缘于JVM技术。JVM是一个可…

java properties 保存_Java 读写Properties配置文件

转自&#xff1a;https://www.cnblogs.com/xudong-bupt/p/3758136.html1.Properties类与Properties配置文件Properties类继承自Hashtable类并且实现了Map接口&#xff0c;也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方&#xff0c;就是它的键和值都是字符…

java垃圾回收机制优化_JVM性能优化--Java的垃圾回收机制

一、Java内存结构1、Java堆(Java Heap)java堆是java虚拟机所管理的内存中最大的一块&#xff0c;是被所有线程共享的一块内存区域&#xff0c;在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例&#xff0c;这一点在Java虚拟机规范中的描述是&#xff1a;所有的对象实…

《linux 网卡别名的添加和绑定》RHEL6

网卡别名的配置&#xff1a; 这个和ifconfig临时修改网卡ip 差不多&#xff0c;但是不一样。都是临时的&#xff0c;只要重启电脑就没了。 配永久的ip别名&#xff1a; cp ifcfg-eth0 ifcfg-eth0:0 vim ifcfg-eth0:0 这样做也能出来&#xff0c;对不对就不知道了 重启网络就ok…

NGUI中UILabel使用url标签的一个bug

在NGUI里&#xff0c;UILabel控件可以支持一些简单功能的标签&#xff0c;使文本显示更丰富及实现类似超链接的功能。但是在使用的时候发现了NGUI3.5.9版本里存在着一个bug。不过还好修复这个bug也很简单。 在UILabel中支持[urllink]text[/url]的方式来定义类超链接的文本。bug…

[转]Oracle DB管理内存

• 描述SGA 中的内存组件• 实施自动内存管理• 手动配置SGA 参数• 配置自动PGA 内存管理内存管理&#xff1a;概览DBA 必须将内存管理视为其工作中至关重要的部分&#xff0c;因为&#xff1a;• 可用内存空间量有限• 为某些类型的功能分配更多内存可提高整体性能• 自动优化…

servlet 3.0异步_Servlet 3.0异步处理可将服务器吞吐量提高十倍

servlet 3.0异步Servlet是Java中处理服务器端逻辑的主要组件&#xff0c;新的3.0规范引入了一些非常有趣的功能&#xff0c;其中异步处理是最重要的功能之一。 可以利用异步处理来开发高度可伸缩的Web应用程序。 使用此功能可以有效地构建Web 2.0站点和AJAX应用程序。 我们的JC…