Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何?

加入好友
加入社群
Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

兩個 pandas.Series: s1, s2

s1的最後兩個元素14, 15

跟s2重複

要如何取出重複的元素?

最前面要 import pandas as pd

Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

s1.isin(s2)

#長的Series.isin(短的Series)

可以生出ser_bool,用來做切片

Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

s1 [ser_bool] 就可以切片了

如果想要知道重複元素的index

可使用s1 [ser_bool].index

該index也可以用來做切片

切出一樣的結果

Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

再看一次ser_bool的內容:

Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

ser_bool最後兩個元素為True

為何True in ser_bool

回饋False?

原因是 True in ser_bool

會比對ser_bool的index,而非values

如果希望回傳True

請使用: True in ser_bool.values

 

i in Series,比對的是index

相當於i in Series.index

for i in Series

這時候i卻代表values

相當於for i in Series.values

一樣的i in Series,

表現卻不一樣

Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

 

原因是isin()函式

return numpy.bool_ 的type

非python內建的bool type

Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

numpy.bool_ (結尾有底線_)

numpy.bool (結尾無底線)

無底線的numpy.bool

跟python內建的bool一樣

且會跳出已被棄用的警告訊息

import numpy as np

Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

推薦hahow線上學習python: https://igrape.net/30afN

isin() 函式如何應用?

WR75: 10~15 GHZ

WR42: 17~31 GHZ

WR28: 24~43.5 GHZ

WR12: 60~90 GHZ

如果應用範圍涵蓋WR75, 42, 28

就需要量測10~43.5 GHZ的線損(S21 或 S12)

如何將10~43.5 GHZ的資料

拆分為三個WR範圍?

ser_bool = 長的Series.isin(短的Series)

為了確保ser_bool的正確性

可以綜合round()函式coding如下: 

ser_bool = serfGHZ.round(2).isin(serfWR_GHZ.round(2))

serfCommon = serfGHZ [ser_bool]

沒加.round(2),

serfCommon 的列數確實有少

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python: 如何用isin()函式切片出兩個 pandas.Series 重複的元素? ser_bool = 長的Series.isin (短的Series); numpy.bool_ ; WR75 WR42 WR28頻段為何? - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *