pandas讀寫各種類型數據

read_X()通常是pandas模塊下的,to_X()是dataframe的方法

CSV

讀取

使用pandas.read_csv()方法,返回的是一個dataframe

csv默認是以","分割的

csv文件內容

1、read_csv()默認以第一行數據作為標題

2、調用dataframe的head()方法可以返回所有行數據,若傳入一個n,則返回前n行數據。默認n=5

也可以使用nrows參數截取,并且是在跳行的基礎上

?

3、若不希望第一行作為標題,或者在read_csv()中添加參數header=None

4、自定義列名(標題)

在read_csv()中傳入參數names

5、跳行

上例中原標題也被讀取出來了,通過參數skiprows可以跳行

6、指定分隔符

通過sep參數,可以傳入正則表達式

比如有如下csv文件

7、分塊處理大型文件

通過chunk參數可以指定每次處理的行數,返回類型為TextFileReader

TextFileReader由多個dataframe組成

寫入

1、將dataframe寫入csv,通過to_csv()方法

可以將header和index參數設置為False,不將列名和索引寫入

2、寫入NaN

將具有NaN數據的dataframe寫入csv文件,此時NaN寫入文件為空

若想要指定NaN寫入的數據,通過na_rep參數指定

?

文本文件

讀取

對于csv文件,也可以通過讀取文本文件的方法來讀取

1、通過dataframe.read_table(),其中傳入參數sep分隔符

同樣有header和skiprows參數

2、指定某列為索引

原文件:

通過屬性index_col()傳入指定列名

html

html的讀寫只針對于python中的dataframe和網頁中的表格

寫入

1、將dataframe轉化為html

可以通過dataframe.to_html()方法,返回的是表格的html代碼

2、保存為html文件

將html代碼寫入html文件中,通過File.write()實現

讀取

1、通過pandas.read_html()實現,返回一個dataframe的列表

2、也可以讀取http網址

XML

讀取

pandas中沒有提供直接讀取xml文件的API,但可以借助lxml庫來讀取xml文件

當前有一個xml文件

通過lxml庫下的objectify.parse()可以解析xml文件,返回的是一個元素樹類型

可以通過元素樹的getroot()方法獲取根,即最外一層的data。此時root類型名即為最外層標簽名

root下有student子標簽,student下有name,age,city子標簽。同樣標簽名即為類型名

root.student是一個由兩個元素的列表,通過items()可以獲取標簽中所有元素

如果只想獲取name的值,通過values()方法

比如想要訪問lisi的age值

將xml轉化為dataframe

根據具體xml格式確定好索引和列

EXCEL

pandas支持.xls和.xlsx兩種類型的excel,通過to_excel和read_excel實現了寫和讀。pandas內部整合了xlrd模塊

讀取

1、當前有一個.xlsx文件,有2個sheet

通過read_excel函數可以返回一個dataframe,默認讀取一個sheet

2、指定讀取的表格,傳入參數表名或者用索引表示

寫入

將dataframe通過to_excel()寫入到excel文件中,并可以指定表名

可見保存了索引和列名

JSON

通過read_json()和to_json()

json類型中數據通過jason格式轉化可見,一列為一個字典

HDF5

HDF5是二進制文件格式的一種

python中需要用Pytable來處理HDF5格式的數據。pandas提供了一個叫HDFStore的類,類似于字典,用它來借助Pytable存儲dataframe對象。因此必須引入HDFStore,位于pandas.io.pytables內

寫入

首先聲明一個HDFStore對象,并創建HDF5文件,以.h5為后綴

向.h5文件中加入這個dataframe,key值自定義,value為df。并且HDFStore對象需要flush到文件中

讀取

取出dataframe,因為HDFStore類似于字典

pickle對象序列化

pickle模塊或cPickle模塊使用的數據格式是python中特有的序列化格式,它是一種可讀的序列化方式,默認使用的ASCII表達式

序列化

首先需要引入pickle模塊,通過字典來裝載后調用pickle.dumps()方法實現序列化

寫入

通過to_pickle將dataframe寫入到.plk文件

?讀取

數據庫

pandas為操作數據庫提供了同一的接口sqlalchemy,連接數據庫使用create_engine函數,在這個函數中配置驅動器所需要的用戶名密碼端口和數據庫實例

各種數據庫的連接方法

SQLite

python內置了數據庫SQLite3,它的數據實際上是一個文件

寫入

會在當前目錄下創建test.db文件

讀取

read_sql函數中第一個參數指定表名

MySQL

創建連接,需安裝mysql-connector-python模塊,test為數據庫名

如果+mysqldb需要安裝mysql-python模塊

寫入

通過可視化軟件可以觀察到,index作為單獨的一列

讀取

1、讀取全表

2、查詢讀取

通過read_sql_query函數可以傳入一個mysql查詢語句

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456185.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456185.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456185.shtml

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

相關文章

python 類裝飾器

1 裝飾器無參數 class tracer: def __init__(self,func): self.calls 0 self.func func def __call__(self,*args): self.calls 1 print(call %s to %s %(self.calls, self.func.__name__)) self.func(*args) tracer def spam(a, b, c): print(a b c) …

【數據分析】使用pandas和numpy分析美國大選獻金項目

1. 數據載入與總覽 1.1 數據加載 #繪圖工具 import matplotlib.pyplot as plt %matplotlib inline #數據處理工具 import numpy as np import pandas as pd from pandas import Series,DataFrame#數據路徑自己指定,本案例數據路徑就在當前文件夾下面子文件夾usa_e…

《容器技術系列》一1.4 Docker運行案例分析

本節書摘來華章計算機《容器技術系列》一書中的第1章 ,第1.4節,孫宏亮 著, 更多章節內容可以訪問云棲社區“華章計算機”公眾號查看。 1.4 Docker運行案例分析 1.3節著重介紹了Docker架構中各個模塊的功能,學完后我們可以對Docker的架構有一…

算術編碼的原理與分析

轉自:http://kulasuki115.blogcn.com/diary,201492702.shtml 前言 人類已進入信息時代,信息時代的重要特征是信息的數字化,人們越來越依靠計算機獲取和利用信息,這就需要對信息的表示、存儲、傳輸和處理等關鍵技術進行研究。我們…

3月22日AM

看了思維章節精講視頻課,并且總結了部分思維章節內容轉載于:https://www.cnblogs.com/bgd140206102/p/6601440.html

阿里巴巴Dubbo實現的源碼分析

Dubbo概述Dubbo是阿里巴巴開源出來的一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務調用方案,以及作為SOA服務治理的方案。它的核心功能包括: remoting:遠程通訊基礎,提供對多種NIO框架抽象封裝,包括“同步…

POJ 2106-Boolean Expressions,雙棧運用類似表達式求值!

Boolean Expressions 首先聲明此題后臺可能極水(畢竟這種數據不好造!)。昨天寫了一天卻總是找不到bug,討論區各種數據都過了,甚至懷疑輸入有問題,但看到gets也可以過,難道是思路錯了&#xff1f…

H264 CAVLC 研究

目錄 1 CAVLC概念 2 CAVLC原理 3 CAVLC編碼流程 4 CAVLC解碼流程 展開全部 1 CAVLC概念 2 CAVLC原理 3 CAVLC編碼流程 4 CAVLC解碼流程 收起 摘要糾錯編輯摘要 CAVLC即基于上下文的自適應變長編碼。H.264標準中使用CAVLC對4*4模塊的亮度和色度殘差數據進行編碼。 CAVLC-CAVLC…

【MySQL 】學習筆記千行總結

/* Windows服務 */ -- 啟動MySQLnet start mysql -- 創建Windows服務sc create mysql binPath mysqld_bin_path(注意:等號與值之間有空格)/* 連接與斷開服務器 */ mysql -h 地址 -P 端口 -u 用戶名 -p 密碼SHOW PROCESSLIST -- 顯示哪些線程正在運行 SHOW VARIABLES…

CCCC 連續因子

題意: 一個正整數N的因子中可能存在若干連續的數字。例如630可以分解為3*5*6*7,其中5、6、7就是3個連續的數字。給定任一正整數N,要求編寫程序求出最長連續因子的個數,并輸出最小的連續因子序列。 輸入格式: 輸入在一行…

Mybatis怎么能看是否執行了sql語句

項目需要學習mybatis中&#xff0c;本來mybatis也不是什么新技術&#xff0c;無奈之前沒接觸過。 驗證緩存機制時&#xff0c;需要能看到是否sql被執行了。這就需要增加日志的打印 配置如下 在pom中增加如下依賴&#xff1a; <dependency> <groupId>org.bgee.log4j…

定時備份 MySQL 并上傳到七牛

定時備份 MySQL 并上傳到七牛 多數應用場景下&#xff0c;我們需要對重要數據進行備份、并放置到一個安全的地方&#xff0c;以備不時之需。 常見的 MySQL 數據備份方式有&#xff0c;直接打包復制對應的數據庫或表文件(物理備份)、mysqldump 全量邏輯備份、xtrabackup 增量邏輯…

vue_props div賦值props定義變量 templete獲取

vue_props div賦值props定義變量 templete獲取 <div id"app"> <add v-bind:btn"h"></add> </div> <script> var vm new Vue({ el: #app, data: { h: "hello" }, components: { "add": { …

H.264句法和語法總結 句法元素的分層結構

在 H.264 定義的碼流中&#xff0c;句法元素被組織成有層次的結構&#xff0c;分別描述各個層次的信息&#xff0c;如下圖所示 在H.264 中&#xff0c;句法元素共被組織成 序列、圖像、片、宏塊、子宏塊五個層次。 在這樣的結構中&#xff0c;每一層的頭部和它的數據部分形成管…

instanceof 的運用

2019獨角獸企業重金招聘Python工程師標準>>> Java 中的instanceof 運算符是用來在運行時指出對象是否是特定類的一個實例。instanceof通過返回一個布爾值來指出&#xff0c;這個對象是否是這個特定類或者是它的子類的一個實例。 用法&#xff1a; result object i…

R 腳本讀取匯總 Excel 表格數據

主要用到了 xlsx 和 rJava 包&#xff0c;打開 Excel 文件&#xff0c;讀取各表格數據&#xff0c;再寫入到匯總表。 下圖為處理前的原始數據表格&#xff1a; 下圖為處理后的數據&#xff1a; 代碼實現 安裝&加載包的函數實現。installed.packages() 函數獲取所有已安裝…

[Grid Layout] Place grid items on a grid using grid-column and grid-row

It’s possible to position a grid item anywhere on a grid track. To do this, let’s specify some grid-template-columns and grid-template-rows, and to the grid items, we’ll pass grid-column and grid-row some numeric values. <!DOCTYPE html> <html l…

【大數據】最新大數據學習路線(完整詳細版,含整套教程)

大數據學習路線 java(Java se,javaweb) Linux(shell,高并發架構,lucene,solr) Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume) 機器學習(R,mahout) Storm(Storm,kafka,redis) Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spa…

264編碼基本概念 FFMpeg的解碼流程

下面轉自http://topic.csdn.net/u/20081020/16/7156e0b2-dbfb-4b4f-af59-2be04cf9a420.html 的8樓 1、NAL、Slice與frame意思及相互關系 NAL指網絡提取層&#xff0c;里面放一些與網絡相關的信息Slice是片的意思&#xff0c;264中把圖像分成一幀&#xff08;frame&#xff09;…

谷歌瀏覽器開發調試工具中Sources面板 js調試等 完全介紹

這次分享的是Chrome開發工具中最有用的面板Sources。 Sources面板幾乎是我最常用到的Chrome功能面板&#xff0c;也是在我看來決解一般問題的主要功能面板。通常只要是開發遇到了js報錯或者其他代碼問題&#xff0c;在審視一遍自己的代碼而一無所獲之后&#xff0c;我首先就會打…