Pandas中的常用數(shù)據(jù)類型詳解
Pandas常用數(shù)據(jù)類型
擴展庫pandas常用的數(shù)據(jù)結(jié)構(gòu)
如下:
(1)Series:帶標(biāo)簽的一維數(shù)組
(2)DatetimeIndes:時間序列
(3)DateFrame:帶標(biāo)簽且大小可變的二維表格結(jié)構(gòu)
(4)Panel:帶標(biāo)簽且大小可變的三維數(shù)組
1.一維數(shù)組與常用操作
Series由索引和值兩部分組成,是一個類似于字典的結(jié)構(gòu)。
其中值的類型可以不同,如果在創(chuàng)建時沒有明確指定索引,則會自動使用從0開始的非負(fù)整數(shù)作為索引。
import pandas as pd import matplotlib.pyplot as plt # 設(shè)置輸出結(jié)果列對齊 pd.set_option('display.unicode.ambiguous_as_wide',True) pd.set_option('display.unicode.east_asian_width',True) # 自動創(chuàng)建從0開始的非負(fù)整數(shù)索引 s1=pd.Series(range(1,20,5)) # 使用字典創(chuàng)建Series,使用字典的“鍵”作為索引 s2=pd.Series({'語文':90,'數(shù)學(xué)':92,'Python':98,'物理':87,'化學(xué)':92}) # 修改指定索引對應(yīng)的值 s1[3]=-17 s2['語文']=94 print('s1原始數(shù)據(jù)'.ljust(20,'=')) print(s1,'\n') print('對s1所有數(shù)據(jù)求絕對值'.ljust(20,'=')) print(abs(s1),'\n') print('s1的每行索引前面加上數(shù)字2'.ljust(20,'=')) print(s1.add_prefix(2),'\n') print('s2原始數(shù)據(jù)'.ljust(20,'=')) print(s2,'\n') print('s2數(shù)據(jù)的直方圖'.ljust(20,'=')) s2.hist() plt.show() print('s2的每行索引后面加上_張三'.ljust(20,'=')) print(s2.add_suffix('_張三'),'\n') print('s2最大值的索引'.ljust(20,'=')) print(s2.idxmax(),'\n') print('測試s2的值是否在指定區(qū)間內(nèi)'.ljust(20,'=')) print(s2.between(90,94,inclusive=True),'\n') print('查看s2中90分以上的數(shù)據(jù)'.ljust(20,'=')) print(s2[s2>90],'\n') print('查看s2中大于中值的數(shù)據(jù)'.ljust(20,'=')) print(s2[s2>s2.median()],'\n') print('s2與數(shù)字之間的運算'.ljust(20,'=')) print(round((s2**0.5)*10,1),'\n') print('s2中最小的2個值'.ljust(20,'\n')) print(s2.nsmallest(2),'\n') # 兩個等長Series對象之間可以進(jìn)行四則運算和冪運算 # 只對兩個Series對象中都有的索引對應(yīng)的值進(jìn)行計算 # 非共同索引對應(yīng)的值為空值 print('兩個Series對象相加'.ljust(20,'=')) print(pd.Series(range(5))+pd.Series(range(5,10)),'\n') # pipe()方法可以實現(xiàn)函數(shù)鏈?zhǔn)秸{(diào)用的功能 print('每個值加3之后再乘以3'.ljust(20,'=')) print(pd.Series(range(5)).pipe(lambda x:x+3).pipe(lambda x:x*3),'\n') print('每個值的平方對5的余數(shù)'.ljust(20,'=')) print(pd.Series(range(5)).pipe(lambda x,y,z:(x**y)%z,2,5),'\n') # apply()方法用來對Series對象的值進(jìn)行函數(shù)運算 print('每個值加3'.ljust(20,'=')) print(pd.Series(range(5)).apply(lambda x:x+3),'\n') print('標(biāo)準(zhǔn)差、無偏方差、無偏標(biāo)準(zhǔn)差'.ljust(20,'=')) print(pd.Series(range(5)).std(),'\n') print(pd.Series(range(5)).var(),'\n') print(pd.Series(range(5)).sem(),'\n') print('檢查是否存在等價于True的值'.ljust(20,'=')) print(any(pd.Series([3,0,True])),'\n') print('查看是否所有值都等價于True'.ljust(20,'=')) print(all(pd.Series([3,0,True])))
2.時間序列與常用操作
使用pandas的date_range()函數(shù)生成時間序列對象:
date_range(start=None,end=None,periods=None,freq='D',tz=None,normalize=False,name=None,closed=None,**kwargs)
- (1)start和end用來指定起止日期時間
- (2)periods用來指定要生成的數(shù)據(jù)數(shù)量
- (3)freq用來指定時間間隔,默認(rèn)為'D',表示相鄰兩個日期之間相差一天
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)定時精度可調(diào)節(jié)的定時器
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)定時精度可調(diào)節(jié)的定時器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04解決usageerror: line magic function "
這篇文章主要介紹了解決usageerror: line magic function "%%time" not found問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01Python hashlib庫數(shù)據(jù)安全加密必備指南
這篇文章主要為大家介紹了Python hashlib庫數(shù)據(jù)安全加密的使用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python csv實時一條一條插入且表頭不重復(fù)問題
這篇文章主要介紹了python csv實時一條一條插入且表頭不重復(fù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05Python實現(xiàn)數(shù)字小寫轉(zhuǎn)大寫的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)數(shù)字小寫轉(zhuǎn)大寫的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12