pandas中Series運(yùn)算匯總(算術(shù)、比較和邏輯運(yùn)算)
在Python的Pandas庫(kù)中,Series
對(duì)象支持多種運(yùn)算操作,這些包括算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算等。下面,我將分別演示這些運(yùn)算的代碼示例,并提供相應(yīng)的場(chǎng)景說(shuō)明。
1. 算術(shù)運(yùn)算
算術(shù)運(yùn)算包括加、減、乘、除等基本運(yùn)算。Pandas允許對(duì)Series進(jìn)行這些運(yùn)算,同時(shí)自動(dòng)對(duì)齊不同Series之間的索引。
Series長(zhǎng)度相同時(shí)
示例代碼:
import pandas as pd # 創(chuàng)建兩個(gè)Series對(duì)象 s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c']) s2 = pd.Series([4, 5, 6], index=['a', 'b', 'c']) # 加法運(yùn)算 result_add = s1 + s2 print("加法結(jié)果:\n", result_add) # 減法運(yùn)算 result_sub = s1 - s2 print("減法結(jié)果:\n", result_sub) # 乘法運(yùn)算 result_mul = s1 * s2 print("乘法結(jié)果:\n", result_mul) # 除法運(yùn)算 result_div = s1 / s2 print("除法結(jié)果:\n", result_div)
執(zhí)行結(jié)果:
加法結(jié)果:
a 5
b 7
c 9
dtype: int64
減法結(jié)果:
a -3
b -3
c -3
dtype: int64
乘法結(jié)果:
a 4
b 10
c 18
dtype: int64
除法結(jié)果:
a 0.25
b 0.40
c 0.50
dtype: float64
適用場(chǎng)景:
在進(jìn)行統(tǒng)計(jì)分析或數(shù)據(jù)預(yù)處理時(shí),可以用來(lái)計(jì)算不同數(shù)據(jù)的總和、差值、產(chǎn)品或商,例如計(jì)算總銷售額或平均銷售額。
Series長(zhǎng)度不同時(shí)
算術(shù)運(yùn)算(加、減、乘、除)在索引不完全對(duì)應(yīng)時(shí),結(jié)果的索引將是兩個(gè)Series索引的并集,不存在的索引將填充為NaN
。
示例代碼:
import pandas as pd # 創(chuàng)建長(zhǎng)度不相同的兩個(gè)Series s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c']) s2 = pd.Series([4, 5, 6, 7], index=['b', 'c', 'd', 'e']) # 加法運(yùn)算 result_add = s1 + s2 print("加法結(jié)果:\n", result_add) # 乘法運(yùn)算 result_mul = s1 * s2 print("乘法結(jié)果:\n", result_mul)
執(zhí)行結(jié)果:
加法結(jié)果:
a NaN
b 6.0
c 8.0
d NaN
e NaN
dtype: float64乘法結(jié)果:
a NaN
b 8.0
c 15.0
d NaN
e NaN
dtype: float64
適用場(chǎng)景:
非常適合于金融數(shù)據(jù)分析中的時(shí)間序列數(shù)據(jù),因?yàn)椴煌慕鹑诠ぞ呖赡茉诓煌臅r(shí)間有交易記錄,通過(guò)這種方式可以輕松處理數(shù)據(jù)對(duì)齊的問(wèn)題。
2. 比較運(yùn)算
比較運(yùn)算包括等于、不等于、大于、小于等,用于比較Series中的元素。
Series長(zhǎng)度相同時(shí)
示例代碼:
# 比較運(yùn)算 result_gt = s1 > s2 print("大于運(yùn)算結(jié)果:\n", result_gt) result_eq = s1 == s2 print("等于運(yùn)算結(jié)果:\n", result_eq)
執(zhí)行結(jié)果:
大于運(yùn)算結(jié)果:
a False
b False
c False
dtype: bool
等于運(yùn)算結(jié)果:
a False
b False
c False
dtype: bool
適用場(chǎng)景:
在數(shù)據(jù)篩選過(guò)程中,比較運(yùn)算常用于根據(jù)條件過(guò)濾數(shù)據(jù),例如篩選出所有銷量超過(guò)某一閾值的記錄。
Series長(zhǎng)度不同時(shí)
比較運(yùn)算(等于、不等于、大于、小于等)在索引不對(duì)應(yīng)時(shí),也會(huì)產(chǎn)生NaN
。
示例代碼:
# 等于運(yùn)算 result_eq = s1 == s2 print("等于運(yùn)算結(jié)果:\n", result_eq)
執(zhí)行結(jié)果:
等于運(yùn)算結(jié)果:
a False
b False
c False
d False
e False
dtype: bool
適用場(chǎng)景:
同樣適用于時(shí)間序列的數(shù)據(jù)對(duì)齊和比較。例如,用于比較不同時(shí)間點(diǎn)的股票價(jià)格是否相等。
3. 邏輯運(yùn)算
Series長(zhǎng)度相同時(shí)
邏輯運(yùn)算主要是對(duì)Series中的bool值進(jìn)行and、or、not運(yùn)算。
示例代碼:
# 創(chuàng)建邏輯運(yùn)算的Series s3 = pd.Series([True, False, True]) s4 = pd.Series([False, True, True]) # 邏輯與運(yùn)算 result_and = s3 & s4 print("與運(yùn)算結(jié)果:\n", result_and) # 邏輯或運(yùn)算 result_or = s3 | s4 print("或運(yùn)算結(jié)果:\n", result_or)
執(zhí)行結(jié)果:
與運(yùn)算結(jié)果:
0 False
1 False
2 True
dtype: bool
或運(yùn)算結(jié)果:
0 True
1 True
2 True
dtype: bool
適用場(chǎng)景:
在處理多個(gè)條件篩選的情況下,例如同時(shí)滿足多個(gè)條件或至少滿足一個(gè)條件的數(shù)據(jù)篩選處理。
Series長(zhǎng)度不同時(shí)
邏輯運(yùn)算(與、或、非)同樣會(huì)出現(xiàn)NaN
,因?yàn)椴紶栠壿嬤\(yùn)算在涉及NaN
時(shí)的結(jié)果也是NaN
。
示例代碼:
# 創(chuàng)建邏輯數(shù)據(jù)Series s3 = pd.Series([True, False, True], index=['a', 'b', 'c']) s4 = pd.Series([False, True, True, False], index=['b', 'c', 'd', 'e']) # 邏輯與運(yùn)算 result_and = s3 & s4 print("與運(yùn)算結(jié)果:\n", result_and) # 邏輯或運(yùn)算 result_or = s3 | s4 print("或運(yùn)算結(jié)果:\n", result_or)
執(zhí)行結(jié)果:
與運(yùn)算結(jié)果:
a False
b False
c True
d False
e False
dtype: bool或運(yùn)算結(jié)果:
a True
b True
c Trued True
e False
dtype: bool
適用場(chǎng)景:
邏輯運(yùn)算通常用于處理資料篩選。在實(shí)際的數(shù)據(jù)處理過(guò)程中,例如在處理用戶行為數(shù)據(jù)時(shí),可能需要根據(jù)多個(gè)時(shí)間點(diǎn)的行為數(shù)據(jù)來(lái)確定用戶的最終行為傾向,邏輯運(yùn)算可以用來(lái)組合不同時(shí)間點(diǎn)的條件。
總結(jié)
對(duì)于長(zhǎng)度不同的Series
進(jìn)行計(jì)算時(shí),Pandas的處理方式是非常智能的,它通過(guò)自動(dòng)對(duì)齊索引并用NaN
填充缺失值,保證了計(jì)算的可行性和結(jié)果的準(zhǔn)確性。這使得Pandas在處理實(shí)際工作中遇到的不規(guī)則數(shù)據(jù)時(shí)顯得格外強(qiáng)大和靈活。
- 在金融分析中,經(jīng)常需要對(duì)齊交易數(shù)據(jù),比如股票的日交易數(shù)據(jù),尤其是在合并多個(gè)股票數(shù)據(jù)進(jìn)行比較時(shí)。
- 在科研數(shù)據(jù)處理中,例如生物信息學(xué)或氣象數(shù)據(jù)分析,數(shù)據(jù)的時(shí)間點(diǎn)可能不完全一致,此時(shí)這種對(duì)齊方式極為重要。
- 在商業(yè)智能中,處理銷售數(shù)據(jù)或用戶行為數(shù)據(jù)時(shí),需要對(duì)產(chǎn)品線不同階段的數(shù)據(jù)進(jìn)行整合分析。
Pandas通過(guò)這種靈活的數(shù)據(jù)處理方式,極大地簡(jiǎn)化了數(shù)據(jù)預(yù)處理的復(fù)雜度,使得數(shù)據(jù)分析師可以更加專注于數(shù)據(jù)分析本身,而不是花費(fèi)大量時(shí)間處理數(shù)據(jù)對(duì)齊和缺失問(wèn)題。
到此這篇關(guān)于pandas中Series運(yùn)算匯總(算術(shù)、比較和邏輯運(yùn)算)的文章就介紹到這了,更多相關(guān)pandas Series運(yùn)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)超市管理系統(tǒng)(后臺(tái)管理)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)超市管理系統(tǒng),增加后臺(tái)管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10python else語(yǔ)句在循環(huán)中的運(yùn)用詳解
這篇文章主要介紹了python else語(yǔ)句在循環(huán)中的運(yùn)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07對(duì)TensorFlow中的variables_to_restore函數(shù)詳解
今天小編就為大家分享一篇對(duì)TensorFlow中的variables_to_restore函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python根據(jù)文件名批量轉(zhuǎn)移圖片的方法
今天小編就為大家分享一篇Python根據(jù)文件名批量轉(zhuǎn)移圖片的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10python機(jī)器學(xué)習(xí)pytorch?張量基礎(chǔ)教程
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)pytorch?張量基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10python 中的divmod數(shù)字處理函數(shù)淺析
這篇文章主要介紹了python divmod數(shù)字處理函數(shù)的相關(guān)資料,感興趣的朋友一起看看吧2017-10-10解決Django 在ForeignKey中出現(xiàn) non-nullable field錯(cuò)誤的問(wèn)題
今天小編就為大家分享一篇解決Django 在ForeignKey中出現(xiàn) non-nullable field錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08