【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.pswp.cn/news/255705.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255705.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255705.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

焊接機器人應用現狀及發展趨勢

據不完全統計&#xff0c;全世界在役的工業機器人中大約有將近一半的工業機器人用于各種形式的焊接加工領域&#xff0c;焊接機器人應用中最普遍的主要有兩種方式&#xff0c;即點焊和電弧焊。圖4所示是這兩種焊接機器人在工業機器人中所占的大致比例。我們所說的焊接機器人其實…

線性期望(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,即如下圖所示 或者由…

CSS之A標簽

a標簽&#xff0c;超級鏈接 a是英語anchor錨的意思。 a標簽常用的就是三個屬性&#xff1a; 1 <a href"網址" title"懸停文本" target"_blank">超級鏈接文字</a> 頁面內的錨點&#xff0c;用name屬性或者id屬性 1 …

【pyqt5學習】——下拉框comboBox

# 向下拉框中添加選型&#xff0c;具體為在下拉框第index1個選型設置為內容name self.comboBox.addItem(name,index1) # 將下拉框中所有的選項刪除 self.comboBox.clear() # 根據索引獲取當前的下拉框內容 index self.comboBox.currentIndex() text self.comboBox.itemText(i…

安裝scapy遇到的問題

1. Mac平臺 在mac上安裝scapy可以說是困難重重&#xff0c;一來因為scapy實在有些小眾和老舊&#xff0c;再加上安裝說明文檔都是python2.5 也沒有詳細說明一些安裝問題。 折騰了大概三個小時之后終于解決了這個老大難。 注&#xff1a;我的環境為anaconda2.3 - python2.7.10 一…

DAY5-小別-2018-1-15

有兩天沒有寫了&#xff0c;前天考完試出去浪了&#xff0c;慚愧自己沒有學習&#xff1b;昨天&#xff0c;啟程回家看完了循環內容的視頻&#xff0c;晚上十點半火車到站&#xff0c;沒抽出時間寫了&#xff0c;還看了《黑客帝國》&#xff0c;有點小感觸&#xff0c;人工智能…

【文件處理】——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 …

centerOS安裝chkrootkit

Chkrootkit是一個在本地系統檢查rootkit痕跡的工具&#xff0c;它是檢查系統二進制文件是否被rootkit病毒修改的一個shell腳本。 &#xff08;1&#xff09;centerOS安裝chkrootkit 安裝gcc編譯環境yum install gcc gcc-c make -y 安裝chkrootkit.tar.gz 解壓后執行 #make sens…

微軟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有更深入的了解。轉載于…

【pyqt5學習】——TextEdit屬性,將滑條始終置于最后

法一&#xff1a; # 向文本框中添加字符串&#xff0c;自動換行&#xff0c;不會覆蓋之前的內容 self.textEdit.append(datetime.datetime.strftime(datetime.datetime.now(),"%Y-%m-%D %H:%M:%S")" 共%d個文件&#xff0c;剩余%d個文件,耗時%.5f&#xff08;…

VS2012 中 c++項目中的各個選項介紹

MFC(Microsoft Foundation Classes)&#xff0c;是一個微軟公司提供的類庫&#xff08;class libraries&#xff09;&#xff0c;以C類的形式封裝了Windows的API&#xff0c;并且包含一個應用程序框架&#xff0c;以減少應用程序開發人員的工作量。其中包含的類包含大量Windows…

Java基于springMVC的驗證碼案例

1 2 Java驗證碼案例&#xff08;基于springMVC方式&#xff09;3 4 驗證碼工具類5 package com.ekyb.common.util;6 7 import java.awt.Color;8 import java.awt.Font;9 import java.awt.Graphics;10 11 import java.awt.image.BufferedImage;12 import java.util.ArrayList;13…

eval函數的工作原理

eval函數的工作原理 eval函數會評估一個給定的含有JavaScript代碼的字符串&#xff0c;并且試圖去執行包含在字符串里的表達式或者一系列的合法的JavaScript語句。eval函數將把最后一個表達式或者語句所包含的值或引用作為返回值。 舉例說明 eval評估JavaScript表達式var bar …

CMake使用入門

一、開胃菜 hello目錄下的文件結構&#xff1a; ├── CMakeLists.txt ├── hello.c ├── hello.h └── main.c C代碼見下節。 最簡單的cmake配置文件&#xff1a; project(HELLO) set(SRC_LIST main.c hello.c) add_executable(hello ${SRC_LIST}) 如果要編譯成gdb可調…