pandas中的series數(shù)據(jù)類(lèi)型詳解
更新時(shí)間:2019年07月06日 11:45:29 作者:xsan
這篇文章主要介紹了pandas中的series數(shù)據(jù)類(lèi)型詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
本文介紹了pandas中的series數(shù)據(jù)類(lèi)型詳解,分享給大家,具體如下:
import pandas as pd
import numpy as np
import names
'''
寫(xiě)在前面的話(huà):
1、series與array類(lèi)型的不同之處為series有索引,而另一個(gè)沒(méi)有;series中的數(shù)據(jù)必須是一維的,而array類(lèi)型不一定
2、可以把series看成一個(gè)定長(zhǎng)的有序字典,可以通過(guò)shape,index,values等得到series的屬性
'''
# 1、series的創(chuàng)建
'''
(1)由列表或numpy數(shù)組創(chuàng)建
默認(rèn)索引為0到N-1的整數(shù)型索引,如s1;
可以通過(guò)設(shè)置index參數(shù)指定索引,如s2;
通過(guò)這種方式創(chuàng)建的series,不是array的副本,即對(duì)series操作的同時(shí)也改變了原先的array數(shù)組,如s3
(2)由字典創(chuàng)建
字典的鍵名為索引,鍵值為值,如s4;
'''
n1 = np.array([1, 4, 5, 67, 7, 43, ])
s1 = pd.Series(n1)
# print(s1)
'''
1
4
5
67
7
43
dtype: int32
'''
s2 = pd.Series(n1, index=['a', 'b', 'c', 'd', 'e', 'f'])
# print(s2)
'''
a 1
b 4
c 5
d 67
e 7
f 43
dtype: int32
'''
# print(n1)
'''
[ 1 4 5 67 7 43]
'''
s1[2] = 100
s3 = s1
# print(s3)
'''
1
4
100
67
7
43
dtype: int32
'''
# print(n1)
'''
[ 1 4 100 67 7 43]
'''
dict1 = {}
for i in range(10, 15):
# names.get_last_name(),隨機(jī)生成英文名字
dict1[names.get_last_name()] = i
s4 = pd.Series(dict1)
# print(s4)
'''
Poole 10
Allen 11
Davis 12
Roland 13
Brehm 14
dtype: int64
'''
# 2、series的索引
'''
(1)通過(guò)index取值,可以通過(guò)下標(biāo)獲取,也可以通過(guò)指定索引獲取,如s6,s7
(2)通過(guò).loc[](顯示索引)獲取,這種方式只能獲取顯示出來(lái)的索引,無(wú)法通過(guò)下標(biāo)獲取,如s7(推薦)
(3)隱式索引,使用整數(shù)作為索引值,使用.icol[],如s9(推薦)
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a 1
b 5
c 9
d 7
e 6
f 4
g 52
h 8
dtype: int32
'''
s6 = s5[2]
# print(s6)
'''
'''
s7 = s5['c']
# print(s7)
'''
c 9
dtype: int32
'''
s8 = s5.loc['c']
# print(s8)
'''
c 9
dtype: int32
'''
s9 = s5.iloc[2]
# print(s9)
'''
'''
# 3、series的切片
'''
1、series的切片和列表的用法類(lèi)似,不同之處在于建議使用.loc[:]和.iloc[:],如s10和s11。當(dāng)然直接使用[:]也可以。
2、當(dāng)遇到特別長(zhǎng)的series,我們支取出前5條或后5條數(shù)據(jù)時(shí)可以直接使用.head()或.tail()
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a 1
b 5
c 9
d 7
e 6
f 4
g 52
h 8
dtype: int32
'''
s10 = s5.loc['b':'g']
# print(s10)
'''
b 5
c 9
d 7
e 6
f 4
g 52
dtype: int32
'''
s11 = s5.iloc[1:7]
# print(s11)
'''
b 5
c 9
d 7
e 6
f 4
g 52
dtype: int32
'''
# 4、關(guān)于NaN
'''
(1)NaN是代表空值, 但不等于None。兩者的數(shù)據(jù)類(lèi)型不一樣,None的類(lèi)型為<class 'NoneType'>,而NaN的類(lèi)型為<class 'float'>;
(2)可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull()函數(shù)檢測(cè)缺失數(shù)據(jù)
'''
# print(type(None),type(np.nan))
'''
<class 'NoneType'> <class 'float'>
'''
s12 = pd.Series([1,2,None,np.nan],index=list('烽火雷電'))
# print(s12)
'''
烽 1.0
火 2.0
雷 NaN
電 NaN
dtype: float64
'''
# print(pd.isnull(s12))
'''
烽 False
火 False
雷 True
電 True
dtype: bool
'''
# print(pd.notnull(s12))
'''
烽 True
火 True
雷 False
電 False
dtype: bool
'''
# print(s12.notnull())
'''
烽 True
火 True
雷 False
電 False
dtype: bool
'''
# print(s12.isnull())
'''
烽 False
火 False
雷 True
電 True
dtype: bool
'''
# 取出series中不為空的值
# print(s12[s12.notnull()])
'''
烽 1.0
火 2.0
dtype: float64
'''
# series的name屬性
'''
'''
s12.name = '風(fēng)水'
# print(s12)
'''
烽 1.0
火 2.0
雷 NaN
電 NaN
Name: 風(fēng)水, dtype: float64
'''
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Python數(shù)據(jù)分析?Pandas?Series對(duì)象操作
- 使用python計(jì)算方差方式——pandas.series.std()
- Pandas數(shù)據(jù)結(jié)構(gòu)詳細(xì)說(shuō)明及如何創(chuàng)建Series,DataFrame對(duì)象方法
- 教你漂亮打印Pandas DataFrames和Series
- pandas的Series類(lèi)型與基本操作詳解
- Pandas把dataframe或series轉(zhuǎn)換成list的方法
- 淺談Pandas Series 和 Numpy array中的相同點(diǎn)
- Pandas中Series的屬性,方法,常用操作使用案例
相關(guān)文章
使用IPython或Spyder將省略號(hào)表示的內(nèi)容完整輸出
這篇文章主要介紹了使用IPython或Spyder將省略號(hào)表示的內(nèi)容完整輸出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

