dataframe修改数据_数据处理进阶pandas入门(一)
前言
NumPy作為數(shù)據(jù)處理的利器,在對數(shù)據(jù)進(jìn)行科學(xué)計(jì)算、存儲處理大型矩陣等方面為我們帶來了極大的方便,但對于更進(jìn)一步的數(shù)據(jù)分析任務(wù),文件操作等方面顯得有些吃力。于是,作為NumPy的進(jìn)階庫pandas應(yīng)運(yùn)而生,在實(shí)際應(yīng)用中,一般NumPy和pandas都是一起出現(xiàn)的,二者再配合Matplotlib可以做很多基礎(chǔ)的數(shù)據(jù)處理、分析和展示。
經(jīng)過前幾次的內(nèi)容,我們已經(jīng)掌握了NumPy的基本用法,接下來我們將開始進(jìn)入到pandas的介紹。
pandas基本概念
pandas是基于NumPy構(gòu)建的一種數(shù)據(jù)處理工具,被譽(yù)為Python中的Excel,主要是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。pandas中含有大量的數(shù)據(jù)處理運(yùn)算相關(guān)庫以及一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效操作大型數(shù)據(jù)集必備的工具。利用pandas提供的函數(shù)和方法能使我們快速便捷高效地處理數(shù)據(jù)。
下面給出了pandas庫的安裝教程以及pandas中文參考文檔。
pandas的安裝教程:http://pandas.pydata.org/pandas-docs/stable/install.html
pandas中文文檔:https://www.pypandas.cn
pandas基本數(shù)據(jù)結(jié)構(gòu)
pandas主要包括四類數(shù)據(jù)結(jié)構(gòu):Series、Time-Series、DataFrame和Panel。
Series:類似于NumPy中的一維ndarray,能保存不同種數(shù)據(jù)類型,包括字符串、boolean值、數(shù)字等。除了可以使用NumPy中一維ndarray可用的函數(shù)或方法外,還可以通過索引標(biāo)簽的方式獲取數(shù)據(jù),具有索引的自動對齊功能。
Time-Series:以時(shí)間為索引的Series。之所以將它從Series中獨(dú)立出來,是因?yàn)闀r(shí)間序列在數(shù)據(jù)處理與分析中是一個(gè)很重要的概念,之后講到時(shí)再具體介紹。
DataFrame:二維的表格型數(shù)據(jù)結(jié)構(gòu)。功能非常類似于R語言中的data.frame。從結(jié)構(gòu)上來看,我們可以將DataFrame理解為Series的容器。
Panel:三維數(shù)據(jù)結(jié)構(gòu)。從結(jié)構(gòu)上來看,我們可以理解為DataFrame的容器。
初識Series和DataFrame
Series和DataFrame是pandas中我們最常用的兩個(gè)數(shù)據(jù)結(jié)構(gòu),我們分別創(chuàng)建Series和DataFrame來看一下它們的基本結(jié)構(gòu)。
我們首先創(chuàng)建一個(gè)一維ndarray,然后通過pandas的Series()函數(shù),將這個(gè)一維ndarray傳入,即可生成一個(gè)Series,基本用法如下。?
import numpy as npimport pandas as pdarr = np.arange(10)print(arr)print("---------------")eries = pd.Series(arr)print(series)運(yùn)行結(jié)果如下所示,可以看到,相比于NumPy的一維ndarray,Series多了一個(gè)默認(rèn)從0開始的索引。
基本Series
當(dāng)然,Series的這個(gè)默認(rèn)索引是可以修改的,我們只需要在使用Series()函數(shù)的時(shí)候多傳入一個(gè)index列表參數(shù)即可。需要注意的是,index的長度必須要與Series的長度保持一致。?
import numpy as npimport pandas as pdarr = np.arange(10)print(arr)print("---------------")series = pd.Series(arr, index=list('abcdefghij'))print(series)我們傳入一個(gè)‘a(chǎn)bcdefghij’的列表序列作為index,再次運(yùn)行, Series的索引就改變了。運(yùn)行結(jié)果如下所示。
改變Series索引
接下來我們看一下DataFrame。與Series類似,由于DataFrame相當(dāng)于NumPy中二維ndarray的表格型數(shù)據(jù)結(jié)構(gòu),我們可以通過NumPy的二維ndarray來創(chuàng)建DataFrame,基本用法如下。?
import numpy as npimport pandas as pdarr = np.arange(12).reshape(3, 4)print(arr)print("---------------")data_frame = pd.DataFrame(arr)print(data_frame)通過pandas的DataFrame()函數(shù),傳入二維ndarray。運(yùn)行結(jié)果如下所示,可以看到,相比于NumPy的二維ndarray,DataFrame的排列格式更像是一個(gè)Excel表格,并且行列都具有默認(rèn)從0開始的索引。
基本DataFrame
同樣的,我們可以修改DataFrame的默認(rèn)行列索引,在使用DataFrame()函數(shù)的時(shí)候傳入index列表參數(shù)修改行索引,傳入columns列表參數(shù)修改列索引。其中,index和columns的長度分別必須與DataFrame的行長度和列長度保持一致。?
import numpy as npimport pandas as pdarr = np.arange(12).reshape(3, 4)print(arr)print("---------------")data_frame = pd.DataFrame(arr, index=list('abc'), columns=list('ABCD'))print(data_frame)我們將index設(shè)置為‘a(chǎn)bc’的列表序列,columns設(shè)置為‘ABCD’的列表序列,再次運(yùn)行,默認(rèn)的行列索引都成功改變了。
修改DataFrame的行列索引
Series和DataFrame相比于NumPy中的一維ndarray和二維ndarray,從結(jié)構(gòu)上來看最大的區(qū)別就是多了索引。此外,可以看到,NumPy中的ndarray就像是矩陣,而pandas中的Series和DataFrame更像是表格,這樣的形狀區(qū)別也注定了二者的應(yīng)用場景的不同,在后續(xù)的內(nèi)容中,我們會漸漸體會到兩者的區(qū)別。
總結(jié)
以上介紹了pandas的基本概念和基本數(shù)據(jù)結(jié)構(gòu),簡單熟悉了pandas中兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu)Series和DataFrame以及它們跟NumPy中的ndarray的區(qū)別。下次內(nèi)容我們開始詳細(xì)介紹pandas中的Series、DataFrame和其他相關(guān)知識。感謝大家的關(guān)注,歡迎批評指正,一起交流~
?
總結(jié)
以上是生活随笔為你收集整理的dataframe修改数据_数据处理进阶pandas入门(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 格式化 目录,Linux 磁
- 下一篇: 服务器不能访问共享文件夹权限,win访问