今天有個同學問到,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...