0
我有一个数据框的列值列表,并希望找到两列之间的差异,换句话说,我想找到列A中不存在的所有元素B.熊猫列差异,包含列表
data={'NAME':['JOHN','MARY','CHARLIE'],
'A':[[1,2,3],[2,3,4],[3,4,5]],
'B':[[2,3,4],[3,4,5],[4,5,6]]}
df=pd.DataFrame(data)
df=df[['NAME','A','B']]
#I'm able to concatenate
df['C']=df['A']+df['B']
NAME A B C
0 JOHN [1, 2, 3] [2, 3, 4] [1, 2, 3, 2, 3, 4]
1 MARY [2, 3, 4] [3, 4, 5] [2, 3, 4, 3, 4, 5]
2 CHARLIE [3, 4, 5] [4, 5, 6] [3, 4, 5, 4, 5, 6]
任何方式来找到差异?
df['C']=df['A']-df['B']
我知道我们可以用df.apply
的功能,但逐行处理会运行缓慢,因为我有大约40万行。我正在寻找像
df['C']=df['A']+df['B']
什么正是你想要的“差异”? 'df ['A']。map(set) - df ['B']。map(set)'会产生一个设定差异。 – chrisb
这就是我正在寻找的!你可以添加作为答案? 我正在尝试df ['D'] = set(df ['A']) - set(df ['B']),我的不好! –
为上述示例工作,但在应用于大型数据集时抛出内存错误! –