包含python如何顯示列數據的詞條

本文目錄一覽:

python提取excel表中的數據兩列

1、首先打開excel表格,在單元格中輸入兩列數據,需要將這兩列數據進行比對相同數據。

2、然後在C1單元格中輸入公式:=VLOOKUP(B1,A:A,1,0),意思是比對B1單元格中A列中是否有相同數據。

3、點擊回車,即可將公式的計算結果顯示出來,可以看到C1中顯示的是B1在A列中找到的相同數據。

4、將公式向下填充,即可發現C列中顯示出的數字即為有相同數據的,顯示「#N/A」的為沒有找到匹配數據的。

5、將C1-C4中的數據進行複製並粘貼成數值,即可完成相同數據的提取操作。

在實際研究中,我們經常需要獲取大量數據,而這些數據很大一部分以pdf表格的形式呈現,如公司年報、發行上市公告等。面對如此多的數據表格,採用手工複製黏貼的方式顯然並不可取。那麼如何才能高效提取出pdf文件中的表格數據呢?

Python提供了許多可用於pdf表格識別的庫,如camelot、tabula、pdfplumber等。綜合來看,pdfplumber庫的性能較佳,能提取出完整、且相對規範的表格。因此,本推文也主要介紹pdfplumber庫在pdf表格提取中的作用。

作為一個強大的pdf文件解析工具,pdfplumber庫可迅速將pdf文檔轉換為易於處理的txt文檔,並輸出pdf文檔的字元、頁面、頁碼等信息,還可進行頁面可視化操作。使用pdfplumber庫前需先安裝,即在cmd命令行中輸入:

pip install pdfplumber

pdfplumber庫提供了兩種pdf表格提取函數,分別為.extract_tables( )及.extract_table( ),兩種函數提取結果存在差異。為進行演示,我們網站上下載了一份短期融資券主體信用評級報告,為pdf格式。任意選取某一表格,其界面如下:

接下來,我們簡要分析兩種提取模式下的結果差異。

(1).extract_tables( )

可輸出頁面中所有表格,並返回一個嵌套列表,其結構層次為table→row→cell。此時,頁面上的整個表格被放入一個大列表中,原表格中的各行組成該大列表中的各個子列表。若需輸出單個外層列表元素,得到的便是由原表格同一行元素構成的列表。例如,我們執行如下程序:

輸出結果:

(2).extract_table( )

返回多個獨立列表,其結構層次為row→cell。若頁面中存在多個行數相同的表格,則默認輸出頂部表格;否則,僅輸出行數最多的一個表格。此時,表格的每一行都作為一個單獨的列表,列表中每個元素即為原表格的各個單元格內容。若需輸出某個元素,得到的便是具體的數值或字元串。如下:

輸出結果:

在此基礎上,我們詳細介紹如何從pdf文件中提取表格數據。其中一種思路便是將提取出的列表視為一個字元串,結合Python的正則表達式re模塊進行字元串處理後,將其保存為以標準英文逗號分隔、可被Excel識別的csv格式文件,即進行如下操作:

輸出結果:

儘管能獲得完整的表格數據,但這種方法相對不易理解,且在處理結構不規則的表格時容易出錯。由於通過pdfplumber庫提取出的表格數據為整齊的列表結構,且含有數字、字元串等數據類型。因此,我們可調用pandas庫下的DataFrame( )函數,將列錶轉換為可直接輸出至Excel的DataFrame數據結構。DataFrame的基本構造函數如下:

DataFrame([data,index, columns])

三個參數data、index和columns分別代表創建對象、行索引和列索引。DataFrame類型可由二維ndarray對象、列表、字典、元組等創建。本推文中的data即指整個pdf表格,提取程序如下:

其中,table[1:]表示選定整個表格進行DataFrame對象創建,columns=table[0]表示將表格第一行元素作為列變數名,且不創建行索引。輸出Excel表格如下:

通過以上簡單程序,我們便提取出了完整的pdf表格。但需注意的是,面對不規則的表格數據提取,創建DataFrame對象的方法依然可能出錯,在實際操作中還需進行核對。

關於我們

微信公眾號「爬蟲俱樂部」分享實用的stata命令,歡迎轉載、打賞。爬蟲俱樂部是由李春濤教授領導下的研究生及本科生組成的大數據分析和數據挖掘團隊。

投稿要求:

1)必須原創,禁止抄襲;

2)必須準確,詳細,有例子,有截圖;

Python如何顯示年齡在30-50之間的數據用什麼語句?

本回答如下:

1. 數據篩選

a b c

0 0 2 4

1 6 8 10

2 12 14 16

3 18 20 22

4 24 26 28

5 30 32 34

6 36 38 40

7 42 44 46

8 48 50 52

9 54 56 58

可以使用 (並)與 | (或)操作符或者特定的函數實現多條件篩選

使用 篩選 a 列的取值大於 30,b 列的取值小於 50的記錄

df[(df[『a』] 30) (df[『b』] 40)]

Python和MATLAB讀取excel指定行列數據的方法

1、用xlrd讀取

對應方法如下,需要先import xlrd和numpy,通過row_start和row_end控制行數,通過column_start和column_end控制列數

這裡要注意python是0-based索引,excel看的時候是1-based的索引

2、用pandas下的read_excel函數

dframe = pd.read_excel(「file_name.xlsx」)

dframe = pd.read_excel(「file_name.xlsx」, sheetname=」Sheet_name」)

dframe = pd.read_excel(「file_name.xlsx」, sheetname=number)

讀取表格的方式有兩種:

1、xlsread

[~,MeaDef,~]=xlsread(xls_site,table_tag,’B12:AI12′);

這裡輸出是一個對應數字,一個對應字元串,一個是用元胞把所有數據放在一起

對應的xlswrite格式:

xlswrite(xls_site_output,train,1,[‘A’,num2str(ix+1),’:M’,num2str(ix+1)])

2、read_table

python讀取資料庫怎麼把列名顯示出來

def query(self, sql):

connect = self.connect()

cur = connect.cursor()

cur.execute(sql)

index = cur.description

result = []

for res in cur.fetchall():

row = {}

for i in range(len(index)-1):

row[index[i][0]] = res[i]

result.append(row)

connect.close()

return result

這個方法返回查詢結果就是帶欄位名的{『欄位名』:『值』}

怎樣用python,讀取excel中的一列數據

感覺還是CSV格式的好處理一些,EXCEL的要裝插件,以CSV為例,給一段代碼

sqlserver char 對應c#

import linecache

o=open(‘d:\\test\\14.csv’)#文件路徑

o.seek(0)

r=o.readlines()

s1=str(input(‘輸入要定位的信息:’))

a=0

count=0

for i in r: #按和值組合查找

if i.find(s1)=0:

print r[a-1]#顯示上一行

print i#顯示定位行

print r[a+1]#顯示下一行

a+=1

print ‘Total:%d’%count

例:

在以下數據中,查找含有T的行,並顯示上一行(n行) or 下一行(n行) 。

1,2,3,4

W,R,GFR,T

12,,F,34,G

python數據分析-科學計數法

用python進行數據分析時,查看數據,經常發生數據被自動顯示成科學記數法的模式,或者多行多列數據只顯示前後幾行幾列,中間都是省略號的情形。

import numpy as npnp.set_printoptions(suppress=True, threshold=np.nan)

suppress=True 取消科學記數法

threshold=np.nan 完整輸出(沒有省略號)

display.[max_categories, max_columns, max_colwidth, max_info_columns, max_info_rows, max_rows, max_seq_items, memory_usage, multi_sparse, notebook_repr_html, pprint_nest_depth, precision, show_dimensions]

詳細介紹文檔: pd.set_option

可以在pd.set_option設置display.float_format參數來以政策小數顯示,比如下面設置顯示到小數點後3位

pd.set_option(‘display.float_format’, lambda x: ‘%.3f’ % x)

set_option中還有其它一些控制設置,包括默認顯示列數,行數等等

pd.set_option(‘display.max_columns’,5, ‘display.max_rows’, 100)

import pandas as pdpd.set_option(‘display.max_columns’, 10000, ‘display.max_rows’, 10000)

display.max_columns 顯示最大列數

display.max_rows 顯示最大行數

1、pd.set_option(『expand_frame_repr』, False)

True就是可以換行顯示。設置成False的時候不允許換行

2、pd.set_option(『display.max_rows』, 10)

pd.set_option(『display.max_columns』, 10)

顯示的最大行數和列數,如果超額就顯示省略號,這個指的是多少個dataFrame的列。如果比較多又不允許換行,就會顯得很亂。

3、pd.set_option(『precision』, 5)

顯示小數點後的位數

4、pd.set_option(『large_repr』, A)

truncate表示截斷,info表示查看信息,一般選truncate

5、pd.set_option(『max_colwidth』, 5)

列長度

6、pd.set_option(『chop_threshold』, 0.5)

絕對值小於0.5的顯示0.0

7、pd.set_option(『colheader_justify』, 『left』)

顯示居中還是左邊,

8、pd.set_option(『display.width』, 200)

橫向最多顯示多少個字元, 一般80不適合橫向的屏幕,平時多用200.

np.set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None)

參數:

precision 設置浮點數的精度 (默認值:8)

threshold 設置顯示的數目(超出部分省略號顯示, np.nan是完全輸出,默認值:1000)

edgeitems 設置顯示前幾個,後幾個 (默認值:3)

suppress 設置是否科學記數法顯示 (默認值:False)

示例如下:

import numpy as npnp.set_printoptions(precision=4, threshold=8, edgeitems=4, linewidth=75, suppress=True, nanstr=’nan’, infstr=’inf’)print(“precision=4, 浮點數精確小數點後4位: “, np.array([1.23446789]))print(“threshold=8, edgeitems=4, 顯示8個,前4後4: “, np.arange(10))np.set_printoptions(formatter={‘all’: lambda x :’int:’+str(-x)})print(“formatter, 格式化輸出: “, np.arange(5))

輸出如下:

[圖片上傳失敗…(image-15f596-1587702700460)]

注意:precision自動四捨五入

詳細介紹文檔: np.set_printoptions

pd.set_option

pd.set_option(pat, value)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159713.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-20 00:15
下一篇 2024-11-20 00:15

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論