有兩個資料集a和b,找出資料集b中不屬於資料集a中的資料,如下圖所示:
資料集a=a+b b=b+c c為a和b重複的資料 主要要過濾掉b中的c即可求解問題
#首先需要對a和b去重
a=pd.dataframe(np.random.randint(0,9,5),columns=['a'])
b=pd.dataframe(np.random.randint(0,9,5),columns=['a'])
a a
0 4
1 4
2 3
3 8
4 1
b a
0 8
1 8
2 6
3 6
4 8
#對a和b進行去重
a=a.drop_duplicates(subset=['a'],keep='first')
b=b.drop_duplicates(subset=['a'],keep='first')
a a
0 4
2 3
3 8
4 1
b a
0 8
2 6
#將兩個dataframe合併成乙個 重新索引
df1 a
0 4
1 3
2 8
3 1
4 8
5 6
#獲取a和b中重複的資料c
c=df1[df1.duplicated(subset=['a'],keep='first')]
c a
4 8
#abc表示a和b中的所有元素 都是唯一值 已經去除了重複的資料
abc=df1[-df1.duplicated(subset=['a'],keep='first')]
abc a
0 4
1 3
2 8
3 1
5 6
#df2和abc完全相同 都表示去重後a和b所有的元素 保留乙個重複元素(最先出現的)
df2=df1.drop_duplicates(subset=['a'],keep='first')
df2 a
0 4
1 3
2 8
3 1
5 6
#df3表示ab中去除重複元素後的資料集 只要有重複的資料都會過濾掉
df3=df1.drop_duplicates(subset=['a'],keep=false)
df3 a
0 4
1 3
3 1
5 6
#獲取重複元素的另外一種方法 df2包括重複元素,df3不包括 合併去重過濾keep=false
#df4和c在原始資料集合a和b都是不重複資料集時是值相同的(索引不一定)
#若a和b中有重複資料 ////
df4 a
2 8
#屬於b但不屬於a的資料
is_b_not_a
a2 6
#一定要確保c只為a和b重複的元素 而不是所有重複元素(方法就是先對a和b先去重)
#特別特別注意的是a和b一定要先去重 如果a和b不去重 不管是df4還是c都會含有a或者b中重複的元素
#這樣一來就會導致那麼is_b_not_a含有a中元素(a重複但未去重)
#或者is_b_not_a多過濾了含b中的元素(b重複但未去重) 仔細考慮後應該不會出現 因為如下中的「此外。。」
#此外該方法也會自動過濾掉b中重複的資料 並且是不保留重複資料 因為keep=false
1.
2.
一文搞懂transform skew
目錄 如何理解斜切 skew,先看乙個 demo。在下面的 demo 中,有 4 個正方形,分別是 紅色 不做 skew 變換,綠色 x 方向變換,藍色 y 方向變換,黑色 兩個方向都變換,拖動下面的滑塊可以檢視改變 skew 角度後的效果。切換 selector 可以設定 transform or...
一文搞懂property函式
接下來我帶大家了解乙個函式的作用以及使用技巧,希望對大家都有幫助,話不多說,接下來就開始我的表演特性 首先property有兩種用法,一種是作為函式的用法,一種是作為裝飾器的用法,接下來我們就逐一分析 property函式 看一下作為函式它包含的引數都有哪些 property fget none,f...
一文搞懂記憶體屏障
gcc編譯選項中有個 o選項,表示編譯 的時候進行優化。這樣就會出現一種可能 優化後的 和優化前的 順序不一致。來看個例子 8 include9 10 int a,b 11 12 int main 13 很簡單,我們使用不加優化選項來將其編譯為組合語言 yuhao laplace workspace...