日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pandas的学习(2.Series的索引和切片、基本概念以及Series的运算)

發布時間:2024/9/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas的学习(2.Series的索引和切片、基本概念以及Series的运算) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Series的索引和切片

? ?可以取中括號取單個索引(此時返回的是元素類型),或者中括號里一個列表取多個索引(此時返回的仍然是一個Series類型)

? ? 分為顯示索引隱式索引

(1) 顯示索引 (必須給索引的值):

? ? -- 使用index中的元素作為索引值
? ? -- 使用 .loc[]? (推薦)

注意此時是閉區間

import numpy as np from pandas import Series# 創建好Series s = Series(np.random.random(10),index=list('abcdefghig')) print(s) print(s['a']) # 可以直接取出行號為 'a' 的數據 print(s.loc['a']) # 通過 .loc[] 的 方式取出索引為'a'的值 '''運行結果:a 0.866009b 0.173073c 0.679109d 0.247098e 0.115333f 0.085793g 0.135284h 0.203943i 0.125305g 0.564275dtype: float640.85981856788197520.8598185678819752 '''

(2) 隱式索引:

? ?--- 使用整數作為索引值
? ?--- 使用? .iloc[]? (推薦)

?注意: 此時是半開區間

print(s[0]) # 通過[]整數的方法取出相應索引的值 print(s.iloc[0]) # 通過 .iloc[] 取出相應索引的值 """運行結果:0.328480026309244670.32848002630924467 """

(3) 切片? ?(代碼實例)

# 切片 '''# 取出索引值為 'a'到'e'的值''' print(s['a':'e']) '''# 取出從第一個開始到第五個''' print(s[0:5]) '''取的方法和列表大致相同'''

?

?Series的基本概念

? ? 1. 可以把Series看成一個定長的有序字典
? ? ? ? ?可以通過shape,size,index,values等得到series的屬性

'''# 打印Series的形狀 對于Series而言只能是一維的''' print(s.shape) # 結果 (10,) 代表 10 行'''# 打印出Series的大小''' print(s.size) # 結果 10'''打印出索引值''' print(s.index) # 結果 Index(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g'], dtype='object')'''打印出所有的值''' print(s.values) # 結果 [0.08580958 0.06484278 0.86393773 0.99667033 0.93736993 0.55856375 # 0.86119536 0.396556 0.30890221 0.51369992]

2.?可以通過head(),tail()快速查看Series對象的樣式

? ? ?對于大數據來說,讀取文件的前幾行和讀取文件的后幾行來說是非常必要的

'''head()方法,打印前幾行,默認只打印前5行''' print(s.head()) '''可以給head()方法中傳遞正整數值,數值為幾,就打印前幾行''' print(s.head(7)) # 打印前7行'''tail()方法,打印后幾行,默認只打印后5行''' print(s.tail()) '''可以給tail()方法中傳遞正整數值,數值為幾,就打印后幾行''' print(s.tail(7)) # 打印后5行

3.當索引沒有對應的值時,可能出現缺失數據顯示NaN(not a number)的情況

s1 = Series([1, 26, None, np.nan], index=list('金木水火')) print(s1) """運行結果:金 1.0木 26.0水 NaN火 NaNdtype: float64 """

? ? 有空值時,是可以進行加和等運算的,Series會自動將無效的空值等轉化為float型,而在numpy的類型中是不可以的??

4.可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull()函數檢測缺失數據

'''判斷Series是否為空,返回的類型還是Series''' print(s1.isnull()) """ 結果金 False木 False水 True火 Truedtype: bool """'''判斷Series不為空嗎 , 為空返回False,不為空返回True''' print(s1.notnull()) """ 結果:金 True木 True水 False火 Falsedtype: bool """'''取出Series中不為空的數據 Series[Series.notnull()]''' print(s1[s1.notnull()]) """金 1.0木 26.0dtype: float64 """

5.Series對象本身及其索引都有一個name屬性,??

? ? name的作用: 區分,在DataFrame中用于區分,在DataFrame中是列名

s1.name = '元素' print(s1) # 然后就會有Name屬性 """ 結果:金 1.0木 26.0水 NaN火 NaNName: 元素, dtype: float64 """

在運算中自動對齊不同索引的數據
如果索引不對應,則補NaN
?? ?注意:要想保留所有的index,則需要使用.add()函數

?Series的運算

? ?1.可以進行加減乘除? ? (直接利用加減乘除符號進行運算時,Nan是不會進行加減乘除的)

print(s1 + 10) """ 金 11.0 木 36.0 水 NaN 火 NaN Name: 元素, dtype: float64 """

2.? 使用add()方法,參數fill_value,? ? 如果在進行加減乘除運算的時候,有NaN的值,

? ? 那么fill_value默認會將NaN設置為= 后面的值

print(s1.add(10,fill_value=0)) # fill_value=0把NaN設置為0 """ 金 11.0 木 36.0 水 10.0 火 10.0 Name: 元素, dtype: float64 """

?3.Series之間進行運算

? ?---? 在運算中自動對齊不同索引的數據? ? ? ??Series最重要的特征是有索引值

? ?--- 如果索引對應,,在進行相加時,索引相同進行相加
? ?---? 如果索引不對應,則補NaN
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:要想保留所有的index,則需要使用.add()函數

from pandas import Seriess1 = Series([2, 4, 7, 9], index=[0, 1, 2, 3]) s2 = Series([1, 2, 3, 4], index=[2, 3, 4, 5]) # 索引不對應 print(s1 + s2) """0 NaN1 NaN2 8.03 11.04 NaN5 NaNdtype: float64 """ # 保留所有的引用,即連個索引取并集 # fill_value: 有空即填充等號后面的值 print(s1.add(s2,fill_value=0)) """0 2.01 4.02 8.03 11.04 3.05 4.0dtype: float64 """

Series數據有空值(None)時,是可以的進行相加的

總結

以上是生活随笔為你收集整理的Pandas的学习(2.Series的索引和切片、基本概念以及Series的运算)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。