簡體   English   中英

如何在兩列之間刪除重復項,但在各列中保留唯一值?

[英]How to drop duplicates between two columns, but keep unique values in respective columns?

我有一個看起來像這樣的df;

col1     col2  
aa       aa
cc       bb
dd       dd 

如何比較同一df中的兩列,但刪除重復項並在各自的列中保持唯一性?

新df:

col1     col2  
cc       bb

我們可以構造一個過濾器來檢查df.col1的值是否不同於df.col2 ,然后進行過濾,例如:

df[df.col1 != df.col2]

例如:

>>> df = pd.DataFrame([['aa', 'aa'], ['cc', 'bb'], ['dd', 'dd']], columns=['col1', 'col2'])
>>> df
  col1 col2
0   aa   aa
1   cc   bb
2   dd   dd
>>> df[df.col1 != df.col2]
  col1 col2
1   cc   bb

我們在這里構造一個新的數據框,但是我們可以將df設置為新的數據框,例如:

df = df[df.col1 != df.col2]

這應該可以解決問題:

df[df[col1] != df[col2]]

如果只想提取各列中具有相同值的行,則應該這樣做。

import pandas as pd

data = {'a':[40, 30, 10],
       'b':[40, 20, 10]}
df = pd.DataFrame(data)
df = df[~(df['a']==df['b'])]

輸出量

>>> df
    a   b
0  10  40
2  30  10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM