兩個 pandas.Series: s1, s2
s1的最後兩個元素14, 15
跟s2重複
要如何取出重複的元素?
最前面要 import pandas as pd
s1.isin(s2)
#長的Series.isin(短的Series)
可以生出ser_bool,用來做切片
s1 [ser_bool] 就可以切片了
如果想要知道重複元素的index
可使用s1 [ser_bool].index
該index也可以用來做切片
切出一樣的結果
再看一次ser_bool的內容:
ser_bool最後兩個元素為True
為何True in ser_bool
回饋False?
原因是 True in ser_bool
如果希望回傳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,
表現卻不一樣
原因是isin()函式
return numpy.bool_ 的type
是numpy.bool_ (結尾有底線_)
非numpy.bool (結尾無底線)
無底線的numpy.bool
跟python內建的bool一樣
且會跳出已被棄用的警告訊息
import numpy as np
推薦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
近期留言