我的输入 df 如下:
ID item1 item2 item3
1 a,b b,c b
2 a,c,f b,c b,c,f
3 g,h,i i h,i
4 j,k j,k l
item1、item2、item3的df数据类型为字符串类型。
我想添加第四列,所需的转换如下: 伪代码:
Final_item = item3 - set[col(item1) + col(item2)]
基本上,在最后一列中,添加 item1 和 item2,然后应用 set 来删除重复项,然后用 item3 列减去。
期望的输出如下:
ID item1 item2 item3 Final_item
1 a,b b,c b a,c
2 a,c,f b,c b,c,f a
3 g,h,i i h,i g
4 j,k j,k l j,k
最佳答案
首先分割
列,并通过,
连接列,然后获得压缩系列列表理解的差异:
i3 = df['item3'].str.split(',')
i12 = (df['item1'] + ',' + df['item2']).str.split(',')
df['Final_item'] = [','.join(set(b) - set(a)) for a, b in zip(i3, i12)]
print (df)
ID item1 item2 item3 Final_item
0 1 a,b b,c b c,a
1 2 a,c,f b,c b,c,f a
2 3 g,h,i i h,i g
3 4 j,k j,k l j,k
关于python-3.x - pandas 数据框列转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60095997/