python-3.x - 熊猫数据框列转换
问题描述
我的输入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
解决方案
第一split
列和连接列,
,然后在压缩系列的列表理解中得到差异:
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
推荐阅读
- java - 使用 StAXON 解析 JSON - 当元素名称中有 : 字符时出现 XMLStreamException
- scala - 如何使用 scala 播放框架更新嵌套的 json?
- javascript - Mapbox GL JS 循环/迭代集群 geojson 功能
- python - 如何提取由 | 分隔的多个 URL 在使用 python 的谷歌工作表中的单个单元格中
- git - git show HEAD^n 或 git show HEAD~n 中的 n 限制
- php - 如何将单元格值复制到php中csv文件的其他空单元格中?
- ios - 如何将@Environment(\.colorScheme) 设置回系统/自动?
- wso2 - 带有 JMS 侦听器的流量管理器的 WSO2 APIM GW 问题
- c++ - 根据虚拟方法的存在,有条件地将 mixin 应用于接口
- outlook - Outlook Web 插件在桌面 Outlook 客户端上不可见,但某些管理员帐户除外