【python pandas excel操作】

目录

1、打开Excel,获取不同sheet的名称

2、获取不同sheet的内容

3、 获取行数以及表头

4、对某一列的信息进行筛选

5、根据列号和索引号提取一行或者一列的数据

6、其他panda对Excel的操作


 摘自:python对excel操作获取某一列,某一行的值,对某一列信息筛选_春风若是你的博客-CSDN博客_python遍历excel某行某列所有数据https://blog.csdn.net/weixin_43245453/article/details/90747259

1、打开Excel,获取不同sheet的名称

import pandas as pd
path = '1.xls'
data = pd.read_excel(path,None)#读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字,此时不用使用DataFram,会报错
print(data.keys())#查看sheet的名字
for sh_name in data.keys():print('sheet_name的名字是:',sh_name)

data = {sheet1:sheet1的内容,sheet2:sheet2的内容,sheet3:sheet3的内容}

2、获取不同sheet的内容

sh_data = pd.DataFrame(pd.read_excel(path,表格页面名称sheet))

3、 获取行数以及表头

import pandas as pd
path = 'G:\动力系\新建文件夹\什么.xls'
data = pd.DataFrame(pd.read_excel(path))#读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字,此时不用使用DataFram,会报错
print(data.index)#获取行的索引名称
print(data.columns)#获取列的索引名称
print(data['姓名'])#获取列名为姓名这一列的内容
print(data.loc[0])#获取行名为0这一行的内容

4、对某一列的信息进行筛选

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

假如我要提取院系下面的动力,代码如下:

import pandas as pd
path = 'G:\动力系\新建文件夹\什么.xls'
data = pd.DataFrame(pd.read_excel(path))#读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字,此时不用使用DataFram,会报错
result = data.loc[data['院系'] == '动力']#获取列明为院系,内容为动力的内容
print(result)

5、根据列号和索引号提取一行或者一列的数据

第4条是根据列名称和行名称来提取一行或者一列的数据,若需要根据行号和列号(索引)来提取一行或者一列的数据则需要先将panda读取得到的数据先转换为数组,然后进行切片读取即可

def getData(xlsPath):data = read_excel(xlsPath, None)  # 读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字,此时不用使用DataFram,会报错sheetNames = data.keys()# 获取所有sheet的名称# bodys, names, name_money = [],[],{}for sheetName in sheetNames:sh_data = DataFrame(read_excel(xlsPath, sheetName))  # 获得每一个sheet中的内容# print(np.array(sh_data))# 获取指定字段的一列内容,类型为<class 'pandas.core.series.Series'># bodys_ = sh_data["部位"]# names_ = sh_data["报告医生"]bodys_ = np.array(sh_data)[:,7] # 先将pandas类型转化为数组,再根据索引取值names_ = np.array(sh_data)[:,16]# 转化为列表bodys = list(bodys_)names = list(names_)return bodys,names

# 获得一个sheet表格的所有内容

 sh_data = DataFrame(read_excel(xlsPath, sheetName))  # 获得每一个sheet中的内容

# 转换为数组

sh_data = np.array(sh_data)

# 切片操作,分别读取第i列和第j行

i_column = sh_data[:,i]

j_row = sh_data[j,:]

6、其他panda对Excel的操作

摘自:python中的dataframe的行、列切片等操作_春风若是你的博客-CSDN博客_dataframe按列切片https://blog.csdn.net/weixin_43245453/article/details/90056884

import numpy as np
import pandas as pddata = pd.DataFrame(np.arange(16).reshape(4,4),index = list("ABCD"),columns=list('wxyz'))
print(data)
print(data[0:2])       #取前两行数据
print('+++++++++++++1111')print(len(data))              #求出一共多少行
print(data.columns.size)      #求出一共多少列
print('+++++++++++++2222')print(data.columns)        #列索引名称
print(data.index)       #行索引名称
print('+++++++++++++3333')print(data.iloc[1])             #取第2行数据
print('+++++++++++++444')print(data['x'])      #取列索引为x的一列数据
print(data.loc['A'])      #取第行索引为”A“的一行数据,
print('+++++++++++++555')print(data.loc[:,['x','z']])          #表示选取所有的行以及columns为a,b的列;
print(data.loc[['A','B'],['x','z']])     #表示选取'A'和'B'这两行以及columns为x,z的列的并集;
print('+++++++++++++6666')print(data.iloc[1:3,1:3])              #数据切片操作,切连续的数据块
print(data.iloc[[0,2],[1,2]])              #即可以自由选取行位置,和列位置对应的数据,切零散的数据块
print('+++++++++++++7777')print(data[data>2])       #表示选取数据集中大于0的数据
print(data[data.x>5])       #表示选取数据集中x这一列大于5的所有的行
print('+++++++++++++8888')a1 = data.copy()
print(a1[a1['y'].isin(['6','10'])])    #表显示满足条件:列y中的值包含'6','8'的所有行。
print('+++++++++++++9999')print(data.mean())           #默认对每一列的数据求平均值;若加上参数a.mean(1)则对每一行求平均值;
print(data['x'].value_counts())    #统计某一列x中各个值出现的次数:
print('+++++++++++++101010')print(data.describe()) #对每一列数据进行统计,包括计数,均值,std,各个分位数等。

C:\Users\innduce\Desktop\jianmo\Scripts\python.exe G:/untitled1/narry.py
    w   x   y   z
A   0   1   2   3
B   4   5   6   7
C   8   9  10  11
D  12  13  14  15
   w  x  y  z
A  0  1  2  3
B  4  5  6  7
+++++++++++++1111
4
4
+++++++++++++2222
Index(['w', 'x', 'y', 'z'], dtype='object')
Index(['A', 'B', 'C', 'D'], dtype='object')
+++++++++++++3333
w    4
x    5
y    6
z    7
Name: B, dtype: int32
+++++++++++++444
A     1
B     5
C     9
D    13
Name: x, dtype: int32
w    0
x    1
y    2
z    3
Name: A, dtype: int32
+++++++++++++555
    x   z
A   1   3
B   5   7
C   9  11
D  13  15
   x  z
A  1  3
B  5  7
+++++++++++++6666
   x   y
B  5   6
C  9  10
   x   y
A  1   2
C  9  10
+++++++++++++7777
      w     x     y   z
A   NaN   NaN   NaN   3
B   4.0   5.0   6.0   7
C   8.0   9.0  10.0  11
D  12.0  13.0  14.0  15
    w   x   y   z
C   8   9  10  11
D  12  13  14  15
+++++++++++++8888
   w  x   y   z
B  4  5   6   7
C  8  9  10  11
+++++++++++++9999
w    6.0
x    7.0
y    8.0
z    9.0
dtype: float64
13    1
5     1
9     1
1     1
Name: x, dtype: int64
+++++++++++++101010
               w          x          y          z
count   4.000000   4.000000   4.000000   4.000000
mean    6.000000   7.000000   8.000000   9.000000
std     5.163978   5.163978   5.163978   5.163978
min     0.000000   1.000000   2.000000   3.000000
25%     3.000000   4.000000   5.000000   6.000000
50%     6.000000   7.000000   8.000000   9.000000
75%     9.000000  10.000000  11.000000  12.000000
max    12.000000  13.000000  14.000000  15.000000

Process finished with exit code 0

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

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

相关文章

线性期望(BUPT2015校赛.F)

将整体期望分成部分期望来做。 F. network 时间限制 3000 ms 内存限制 65536 KB题目描述 A social network is a social structure made up of a set of social actors (such as individuals or organizations) and a set of the relationships between these actors. In simp…

【pyqt5学习】——进度条progressBar

# 进度条 self.progressBar.setValue(0) # 设置进度条的最小值 self.progressBar.setMaximum(100) # 设置进度条的最大值 # 设置进度条当前值 self.progressBar.setValue((int(curindex/excelNum)*100)) 常用方法 方法值说明setRangeQProgressBar.setRange(min, Max)通过 setR…

弧焊 不同气体对焊缝的影响 100二氧化碳 15%氩气CO2混合

Ar含量提高后&#xff0c;相比原来的100%CO2成本会提高很多。 Ar的密度比CO2小&#xff0c;焊接的焊枪必须压的很低&#xff0c;如果焊接结构中有一些狭小区域&#xff0c;焊枪则无法到达。纯CO2气体保护焊&#xff0c;焊丝可伸出较长。 Ar属于惰性气体&#xff0c;焊接时…

Windows和Linux如何使用Java代码实现关闭进程

在用selenium做自动化测试时&#xff0c;由于各种不明原因&#xff0c;有时Chrome浏览器会出现假死的情况&#xff0c;也就是整个浏览器响应超时&#xff0c;本人脚本主要部署在Windows机器上&#xff0c;所以主要以Windows为主&#xff0c;浏览器为Chrome,即如下图所示 或者由…

【pyqt5学习】——下拉框comboBox

# 向下拉框中添加选型&#xff0c;具体为在下拉框第index1个选型设置为内容name self.comboBox.addItem(name,index1) # 将下拉框中所有的选项删除 self.comboBox.clear() # 根据索引获取当前的下拉框内容 index self.comboBox.currentIndex() text self.comboBox.itemText(i…

【文件处理】——Python pandas 写入数据到excel中

目录 1、创建一个新的excel表格 2、 获取写入excel的数据data 3、将data类型转换为pandas接受的类型 4、写入到excel中 5、保存excel 最终结果 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/11/9 23:18 # Author : linlianqin # Site : # File …

微软Visual Studio 2012软件功能介绍

对于从事.net程序开发的我们&#xff0c;都要用到C#依附的Visual Studio平台!Visual Studio是目前最流行的Windows平台应用程序开发环境。最新版本为 Visual Studio 2012 版本&#xff0c;基于 NET Framework4.5 。. Visual Studio 2012内置的测试工具可以帮助开发者打造高质量…

Spring Boot轻松理解动态注入,删除bean

2019独角兽企业重金招聘Python工程师标准>>> 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入对象.因为如果采用配置文件或者注解&#xff0c;我们要加入对象的话,还要重启服务,如果我们想要避免这一情况就得采用动态处理bea…

对象的深度克隆

最近在复习javascript&#xff0c;然而我的读书笔记&#xff0c;以及技术博客&#xff0c;已经转战cmd Markdown。所以这里就只写了一个对象的深度克隆方法&#xff1a; 这个克隆方法可以让我很深刻的了解到了js中&#xff0c;万物皆对象&#xff0c;对js有更深入的了解。转载于…

C/C++语言变量声明内存分配

[cpp] view plaincopy<span style"font-family: Verdana, Arial, Helvetica, sans-serif; ">一个由c/C编译的程序占用的内存分为以下几个部分</span> 1、栈区&#xff08;stack&#xff09;— 程序运行时由编译器自动分配&#xff0c;存放函数的参数值…

【pyqt5学习】——items view相关控件(list view、table view)

目录 list view——列表视图 table view——表格视图 list view——列表视图 PyQt5-高级控件使用&#xff08;QListView&#xff09; - ygzhaof_100 - 博客园QListView用于展示数据&#xff0c;子类是QListWidget。QlistView基于模型Mode&#xff0c;需要程序创建Model然后保…

【pyqt5学习】——containers相关控件(tab widget、scroll area、stack widget、tool box、MDI area、dock widget)

目录 1、tab widget 2、scroll area 2.1 使用方法 Step1.拖入QScrollArea ​Step2.改变widget控件布局 ​Step3.设置scrollAreaWidgetContents大小 3、Tool Box 4、Stacked Widget 4.1 案例展示 5、frame 6、MDI AREA 7、dock widget 7.1 悬浮状态 7.2 吸附状态 conta…

Java使用原子类进行多线程的 i++ 操作示例

2019独角兽企业重金招聘Python工程师标准>>> 使用AtomicInteger原子类进行 i 操作 可以有类似 synchronized 实现同步的效果。 原子操作是不能分割的整体&#xff0c;没有其他线程能够中断或检查正在原子操作中的变量。一个原子类型就是一个原子操作可用的类型&…

mybatis实战教程(mybatis in action)之二:以接口的方式编程

前面一章&#xff0c;已经搭建好了eclipse,mybatis,mysql的环境&#xff0c;并且实现了一个简单的查询。请注意&#xff0c;这种方式是用SqlSession实例来直接执行已映射的SQL语句&#xff1a;session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID&…

Linux内核分析06

进程的描述和进程的创建 一&#xff0c;进程的描述 进程控制块PCB——task_struct &#xff08;进程描述符&#xff09;&#xff0c;为了管理进程&#xff0c;内核必须对每个进程进行清晰的描述&#xff0c;进程描述符提供了内核所需了解的进程信息。 struct task_struct数据结…

【pyqt5学习】——pyqt5中.qrc资源文件的创建与编写

目录 一、说明 二、安装pyqt5以及相关工具&#xff08;pyqt5、pyuic、pqrcc&#xff09; 三、创建.ui文件 1、选中文件右键-external-pyqt5 打开GUI设计界面 2、创建一个界面&#xff08;内含四个等大label框&#xff09; 3、CTRLS保存 4、找到ui文件&#xff0c;右键--e…

C#学习笔记——25个经典问题

1.静态成员和非静态成员的区别&#xff1f; 2.const 和 static readonly 区别&#xff1f; 3.extern 是什么意思&#xff1f; 4.abstract 是什么意思&#xff1f; 5.internal 修饰符起什么作用&#xff1f; 6.sealed 修饰符是干什么的&#xff1f; 7.override 和 o…

PHP的学习--RSA加密解密

PHP服务端与客户端交互或者提供开放API时&#xff0c;通常需要对敏感的数据进行加密&#xff0c;这时候rsa非对称加密就能派上用处了。 举个通俗易懂的例子&#xff0c;假设我们再登录一个网站&#xff0c;发送账号和密码&#xff0c;请求被拦截了。 密码没加密&#xff0c;那攻…

【pyqt5学习】——最新版:配置external tools(designer、pyuic、pqrcc)

目录 1、pip install PyQt5 2、pip install pyqt5-tools 3、file-settings-tools-external tool 点击加号定义工具名字&#xff0c;名字随意便于区分即可 双击每一个工具名字&#xff0c;配置路径&#xff08;注意每一个exe的路径&#xff09; designer.exe pyuic.exe py…