我有2个导入到DataFrames中的Excel文件。 一个是我的主要数据集,另一个是查找数据集。 我处理这两个文件以创建CN ON列,这成为我的关键。 查找数据集得到处理,处理后我将删除重复项。 我想将“ Code列引入主数据集。 如果一个CN ON与多个Code值相关联,则将其分配给'Multiple' 。 如果FO = 'R1' ,则使Code = 'R1' 。 如果关联的CN ON没有代码值,则使Code = 'NONE' 。 对于任何不正确的术语,我也深表歉意!

主数据集

df2 = pd.DataFrame({'CN ON': ['WD-D5','JF-04','P5','PK-E4','UL-G8','MD-ZZ'],

'D1': ['D1','D2','D3','D4','D5','D6']

})

查找数据集

df = pd.DataFrame({'CN': ['WD','JG','P5','PK','PK','UL','UL'],

'ON': ['D5','04','','E4','E4','G8','G8'],

'FO': ['A','A','A','A','A','R','R'],

'Code': ['D1','YZ','YZ','HY','PB','SA','SA'],

'CN ON': ['WD-D5','JF-04','P5','PK-E4','PK-E4','UL-G8','UL-G8']

})

当前

CN ON是我的键,然后Code是我要查找的值。 我试图在将数据集连接在一起之前修改df2 。 如果FO = 'R1' ,则设置Code = 'R1' 。 如果一个CN ON与不同的Code值相关联,则为所有实例分配Code = 'MULTIPLE' 。

然后将产生下面的DataFrame。

然后,我将删除重复的行,这将产生一列唯一的CN ON值。 然后,我将DataFrames连接在一起。

#Remove duplicates

df2.drop_duplicates(inplace=True)

带有Code查找的CN ON唯一列表。

#Left join the two DataFrames, with the Main Data Set being on the left on the 'CN ON' column

combined = pd.merge(df,df2[['CN ON','Code']], on = 'CN ON',how='left')

#If no 'Code' exists, then replace the 'NaN' values with 'NONE'

combined.update(combined[['Code']].fillna('NONE'))

所需结果

我当然可以接受其他解决方案,但这在我看来在逻辑上是有意义的。 我在修改df2以使用Code或'Multiple'更新Code列时遇到麻烦。 任何指导或协助将不胜感激! 在这个过程中,我学到了很多东西,并且我获得了StackOverflow的大量帮助。 感谢大家的耐心配合!

python dataframe去除重复项_python - Pandas DataFrame处理查找DataFrame中的重复项 - 堆栈内存溢出...相关推荐

  1. python创建dataframe表格不显示_Python pandas .使用Series创建DataFrame不会保留dtype

    我有一个用例,我认为这很普遍,因此我认为自己的这个问题应该很容易为自己解答,但我找不到任何答案.考虑以下. df = pandas.DataFrame({"id": numpy.r ...

  2. python单元格内换行_Python Pandas可防止单元格中的换行符

    使用以下函数,我已经设法防止在笔记本中的输出中截断: pd.set_option('display.max_colwidth', 200) pd.set_option('display.max_col ...

  3. python求小于n的所有素数_python - 列出N以下所有素数的最快方法 - 堆栈内存溢出...

    警告:由于硬件或Python版本的不同, timeit结果可能会有所不同. 下面是一个脚本,比较了许多实现: 非常感谢斯蒂芬为使sieve_wheel_30引起我的注意. 值得罗伯特·威廉·汉克斯 ( ...

  4. python拆堆和堆叠的操作_python - 如何合并不同的DFS并堆叠值? - 堆栈内存溢出

    我有一个dict ,其中有17 df . 样本dfs : df1 key percent 0 step19_without_lof 14.534883720930232 df2 key percent ...

  5. python 等值线 标注 间距、控制_python - Matplotlib-Contourf-如何使刻度线间距不均匀? - 堆栈内存溢出...

    根据yticks上的matplotlib文档,您可以指定要使用的标签. 在您的情况下,如果要显示标签[10,100,500,1000,1500,2000,3000,4000,5000] ,则可以将该列 ...

  6. matlab读取格式重复,matlab - 为什么Xlsread以字符串形式读取(日期时间) - 堆栈内存溢出...

    我正在尝试阅读Excel工作表. 在同一台计算机上,我得到不同的结果. 我应该怎么做才能将日期时间读为日期而不是字符串? 我知道以后可以更改它,但是我需要为Octave和Matlab使用相同的代码. ...

  7. opencv 去除噪点 java_c++ - OpenCV-去除图像中的噪点 - 堆栈内存溢出

    我在OpenCV中尝试了一些过滤器/操作,它似乎工作得很好. 第1步: 放大图片- kernel = np.ones((5, 5), np.uint8) cv2.dilate(img, kernel, ...

  8. 题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现)

    题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现) 题目: 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字 ...

  9. Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un

    ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素  Java 实例 以下实例 ...

  10. python数据去重的函数_python pandas dataframe 去重函数的具体使用

    今天笔者想对pandas中的行进行去重操作,找了好久,才找到相关的函数 先看一个小例子 from pandas import Series, DataFrame data = DataFrame({' ...

最新文章

  1. 总结六条对我们学习Linux系统有用的忠告
  2. 阿里云服务器Docker及Docker Compose的安装
  3. Sqlserver循环嵌套
  4. Nginx安装学习使用具体记录
  5. spring jms同时使用queue和持久topic订阅
  6. 编程范式,程序员的编程世界观(转)
  7. Hive 常见问题与技巧【Updating】
  8. 【caffe-Windows】mnist实例编译之model的生成
  9. There is no public key available for the following key IDs: 3B4FE6ACC0B21F32
  10. ROS launch文档介绍
  11. 现代软件工程讲义 6 用户调研
  12. php tp5.3,[李景山php]每天TP5-20161226|thinkphp5-Console.php-3
  13. js与c语言效率_2020年为什么要精通C语言?是什么造就封神之路?不愧是最强编程语言...
  14. datagridview合并表头
  15. yolov4训练自己的数据
  16. 如何下载java JDK文档
  17. shapefile文件格式转inp文件格式
  18. linux 改变输出端口,linux – 更改ssh端口后的Fail2ban设置
  19. 基于Pytorch中的Dataset和Dataloader读取Voc类目标检测数据集
  20. OpenAI-2018年强化学习领域7大最新研究方向全盘点

热门文章

  1. mysql 交互式和非交互式操作(interactive_timeout和wait_timeout)
  2. 非关系型数据库Redis Linux 下安装
  3. sql server小知识
  4. Linux服务器安全配置三要点
  5. vmcore分析和实战
  6. ati hd4570 linux amd 64 安装命令,ATI 显卡的驱动在Linux下的安装方法
  7. Linux内核入门(五)——必要的硬件知识
  8. Linux kernel路由机制分析(上)
  9. inode file 结构
  10. opencv历史代码下载