一文搞懂pandas中的去重

2021-09-17 21:05:38 字數 1932 閱讀 9720

有兩個資料集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...