[英]Compare two column values and get distinct values from first column
我想比較column1和column2並從column1獲取唯一值(忽略NaN
)。 所以在這種情況下,我應該得到test1
, test4
。
另外,我們可以創建結果並將其存儲在另一列中嗎?
Column1 column2
0 test1 test2
1 test2 test3
2 test3 hello
3 test4 world
4 NaN how
5 NaN are
6 NaN you
您可以通過執行以下操作獲得這些值
set(df.column1)-set(df.column2)-set([None])
另外,如果要將結果存儲在另一列中,則可以執行以下操作:
import pandas as pd
df=pd.DataFrame({'column1':['t1','t2','t3',None],'column2':['t1','a',None,None]})
unique_vals=list(set(df.column1)-set(df.column2)-set([None]))
df['new_col']=unique_vals+['None']*(len(df)-len(unique_vals))
df
結果是:
column1 column2 new_col
0 t1 t1 t2
1 t2 a t3
2 t3 None None
3 None None None
不引用列名
說明
stack
是因為這是放置nan而不強制形成矩形的便捷方法。 level=1
分組與堆疊前按列分組相同。 set
將允許我使用減法或diff
,這就是我們想要的set.difference
。 [::-1]
只是顛倒了順序,所以我得到了正確的區別。 np.diff(df.stack().groupby(level=1).apply(set).values[::-1])
array([{'test4', 'test1'}], dtype=object)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.