pandas中的isin函式詳解

2021-08-14 04:10:48 字數 1361 閱讀 3052

今天有個同學問到,not in 的邏輯,想用 sql 的select c_***_s from t1 left join t2 on t1.key=t2.key where t2.key is null 在 python 中的邏輯來實現,實現了 left join 了(直接用join方法),但是不知道怎麼實現where key is null。

其實,實現not in的邏輯,不用那麼複雜,直接用isin函式再取反即可,下面就是isin函式的詳解。

import pandas;

df = pandas.dataframe()

#如果是乙個序列或者陣列,

#那麼判斷該位置的值,是否在整個序列或者陣列中

df.isin(

[1, 3, 12, 'a']

)    

a      b

0   true   true

1  false  false

2   true  false    

df = pandas.dataframe()

#如果是乙個dirt,

#那麼就會首先判斷對應的index是否存在,

#如果存在,那麼就會判斷對應的位置,在該列是否存在

df.isin()

a      b

0   true  false

1  false   true

2   true   true

#如果不存在,那麼全部為false,例如b列沒有,那麼全部為false

df.isin()

a      b

0   true  false

1  false  false

2   true  false

df = pandas.dataframe()

other = pandas.dataframe()

#如果是乙個dataframe,

#首先就是列名要存在,

#並且需要df中行列位置和b對應的行列位置一一匹配,才返回true

df.isin(other)

a      b

0   true  false

1  false  false

2   true   true

other = pandas.dataframe()

#因為ab列皆不在,因此都為false

df.isin(other)

a      b

0  false  false

1  false  false

2  false  false

嗯嗯?還沒有講到not in?哦哦,沒有isnotin函式,取反的方法就是在函式前面加個 ~ ,好銷魂的一飄。

~df.isin(other)

pandas中isin 函式及其逆函式使用

我使用這個函式就是用來清洗資料,刪選過濾掉dataframe中一些行。這裡你需要知道dateframe中布林索引這個東西,可以用滿足布林條件的列值來過濾資料,如下 df pd.dataframe np.random.randn 4,4 columns a b c d df a b c d 0 0.0...

Pandas中loc和iloc函式用法詳解

loc函式 通過行索引 index 中的具體值來取行資料 如取 index 為 a 的行 iloc函式 通過行號來取行資料 如取第二行的資料 本文給出loc iloc常見的五種用法,並附上詳細 1 利用loc iloc提取行資料 import numpy as np import pandas as...

MySQL中group concat函式詳解說明

mysql中group concat函式詳解說明 mysql的函式是比較多,常用的函式大家都比較熟悉,今天說乙個稍陌生的函式,group concat,功能是將要連線的字段按照排序欄位的順序用分隔符連起來顯示,預設分隔符是 一 完整的語法 group concat distinct 要連線的字段 o...