在 Pandas DF 中使用删除重复项,但根据首选项列表选择保留列

2023-12-01

我有包含许多列的数据框。有一个日期时间列,并且有重复的日期时间条目以及来自不同源的这些重复项的数据。我想根据以下内容删除重复项column "dt",但我想根据其中的内容保留结果column "pref"。我在下面提供了简化的数据,但这样做的原因是我还有一个值列,并且"Pref"列是数据源。我更喜欢某些数据源,但每个日期只需要一个条目(column "dt")。我希望这段代码能够正常工作,这样我就不必提供完整的首选项列表。

人工数据代码

import pandas as pd
import numpy as np

 df=pd.DataFrame({'dt':[1,1,1,2,2,3,3,4,4,5],
        "Pref":[1,2,3,2,3,1,3,1,2,3],
        "Value":np.random.normal(size=10),
        "String_col":['A']*10})
df

Out[1]: 
   dt  Pref     Value  String_col
0   1     1 -0.479593  A
1   1     2  0.553963  A
2   1     3  0.194266  A
3   2     2  0.598814  A
4   2     3 -0.909138  A
5   3     1 -0.297539  A
6   3     3 -1.100855  A
7   4     1  0.747354  A
8   4     2  1.002964  A
9   5     3  0.301373  A

所需输出 1(情况 1):

在这种情况下,我的偏好列表一直很重要。我最喜欢数据源 2,其次是 1,但如果我只有 3,我会选择 3。

preference_list=[2,1,3]

Out[2]: 
   dt  Pref     Value  String_col
1   1     2  0.553963  A
3   2     2  0.598814  A
5   3     1 -0.297539  A
8   4     2  1.002964  A
9   5     3  0.301373  A

所需输出 2(情况 2)

在本例中,我只想查找数据源 1。如果它不存在,我实际上并不关心其他数据源是什么。

preference_list2=[1]

Out[3]: 
   dt  Pref     Value  String_col
0   1     1 -0.479593  A
3   2     2  0.598814  A
5   3     1 -0.297539  A
7   4     1  0.747354  A
9   5     3  0.301373  A

我可以想象在一个非常缓慢且复杂的循环中执行此操作,但我觉得应该有一个命令来完成此操作。还有一件重要的事情:我需要在数据框中保留一些其他文本列,因此 .agg 可能会导致这些元数据出现问题。我尝试过排序和使用keep论证中drop_duplicates,但没有成功。


您实际上正在寻找按类别排序,这可以通过pd.Categorical:

df["Pref"] = pd.Categorical(df["Pref"], categories=preference_list, ordered=True)

print (df.sort_values(["dt","Pref"]).drop_duplicates("dt"))

   dt Pref     Value String_col
1   1    2 -1.004362          A
3   2    2 -1.316961          A
5   3    1  0.513618          A
8   4    2 -1.859514          A
9   5    3  1.199374          A
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Pandas DF 中使用删除重复项,但根据首选项列表选择保留列 的相关文章

随机推荐

  • Android 无尽列表

    如何创建一个列表 当您到达列表末尾时我会收到通知 以便我可以加载更多项目 一种解决方案是实施OnScrollListener并进行更改 例如添加项目等 ListAdapter处于方便的状态onScroll method 下列ListActi
  • 从 Visual Studio 将文件添加到 WP7 独立存储?

    我正在开发一个 Windows Phone 7 应用程序 我将在其中使用 bing 地图显示您所在位置的 ATM 我有一个包含地址和 GPS 坐标的 xml 文件 但是如何从 Visual Studio 将此文件添加到我的程序中 如果我将
  • 关闭连接之前关闭阅读器

    您是否应该始终在关闭连接之前关闭 DataReader 还是直接关闭连接就可以了 通过关闭连接是否会有效地关闭读者 这是针对 c net 3 5 的 Thanks 除了明确你的意图之外 Microsoft 文档中还提到了这一点 使用 Dat
  • Chrome 上的 Angular2 Table Row 组件以单列显示

    使用中的版本 角2 0 1 角度 cli 1 0 0 beta 17 我有一个页面分为 3 个组件 页面大纲是一个具有自己的布局 包括行 的表格 其中一行包含行组件 在 IE 中 表格显示良好 在 Chrome 中 组件行中的所有数据都显示
  • ObjectContext 实例已被释放 - Winforms Entity Framework

    I am trying to solve this problem and did read content regarding this error but was unable to figure out a solution I am
  • 如何为postgres docker容器的初始化脚本指定当前工作数据库?

    众所周知 可以使用类似于以下命令的 docker 命令复制要在创建容器时执行的 init sql 文件 COPY init sql docker entrypoint initdb d 让我们考虑使用一个非常简单的 create table
  • 前置“\\?\”不适用于处理长路径

    我正在尝试找到一种解决 Windows 字符限制的方法 该限制不允许复制文件名 gt 260 个字符的文件 根据这篇 MSDN 文章 if 附加在文件名前面 这将绕过文件名长度限制 我尝试过这个测试 string source C User
  • 如何设置WebView内容比例(qml QT 5.2)

    我使用 qml WebView QT 5 2 WebView anchors fill parent url http google com 加载的页面内容根据 WebView 宽度进行缩放 如何获得像浏览器中那样的默认比例 left pi
  • 使用 NLTK,当给出某个单词时,如何生成不同形式的单词?

    例如 假设给出 happy 这个词 我想生成其他形式的happy 例如幸福 幸福 等 我已经阅读了有关 Stackoverflow 和 NLTK 参考资料的其他一些先前问题 然而 只有词性标注 变形就像识别句子中某些单词的语法形式 而不是生
  • 来自数据库的动态下拉列表值

    如何将主下拉列表的值连接到子下拉列表中 下拉列表的值来自数据库 main list 和 sub list 表 而且身体加载也不起作用 主列表 id value id no 1 colors 1 2 fruits 2 3 animals 3
  • 位置提供商真的很耗电吗?

    我需要实现基于位置的服务 我不需要精确的位置 所以不需要 GPS 最简单的方法是在应用程序启动时开始侦听位置更新 并将其保留为打开状态 mLocationMgr requestLocationUpdates LocationManager
  • .gitignore 被 Git 忽略

    My gitignore文件似乎被 Git 忽略了 可以吗 gitignore文件损坏 Git 需要哪种文件格式 区域设置或文化 My gitignore This is a comment debug log nbproject 输出来自
  • 在 Rails 中使用 jquery 和 Ajax 检查用户名可用性

    我使用 Rails 和 jquery 和 ajax 来检查用户名的可用性 我在用 以下插件用于 jquery 验证目的 https github com posabsolute jQuery Validation Engine 在我的控制器
  • 使用 Flex Mobile 4.6 在 iOS 上上传图库或捕获的图像

    有谁有使用 iOS Flex 4 6 中的相机 API 的经验吗 我遇到了很多设置问题并且缺少文档 我正在尝试设置一个图像上传组件 用户可以在其中捕获新照片或从其库中选择现有照片 对于捕获来说 当图像保存为 JPEG 时 并且我正在使用 A
  • 聚类中的大距离矩阵

    我在 16 GB RAM 的机器上运行 R 3 2 3 我有一个 3 00 000 行 x 12 列的大矩阵 我想在 R 中使用层次聚类算法 所以在这之前 我尝试创建一个距离矩阵 由于数据是混合类型 我对不同类型使用不同的矩阵 我收到有关内
  • Angular2 处理 http 响应

    我只是有一个关于构建和处理服务中 http 请求响应的问题 我在用Angular2 alpha46 打字稿 刚刚开始测试它 我喜欢它 Ps 感谢所有致力于此工作并通过 github 做出贡献的人 因此采取以下措施 登录表单 componen
  • Nuget 下载脚本时出现问题

    好吧 以前也发生过这种情况 我不确定这是怎么回事 我去安装这个nuget包 Microsoft jQuery Unobtrusive Ajax 使用命令行和 GUI 都可以 正确 安装该软件包 但我的项目中没有添加脚本 我在使用 MVC6
  • 如何获取从“UIImagePickerController”接收的图像的压缩文件大小?

    我想知道拍摄的图像的大小UIImagePickerController通过卡马拉或图书馆 有什么办法可以找到吗 要求就像 如果图像大小超过 1 MB 我想对其进行压缩 提前致谢 尝试这个 CGFloat compression 0 8f C
  • 接口方法中的最终参数 - 有什么意义?

    在Java中 定义是完全合法的final接口方法中的参数 并且不遵守实现类中的参数 例如 public interface Foo public void foo int bar final int baz public class Foo
  • 在 Pandas DF 中使用删除重复项,但根据首选项列表选择保留列

    我有包含许多列的数据框 有一个日期时间列 并且有重复的日期时间条目以及来自不同源的这些重复项的数据 我想根据以下内容删除重复项column dt 但我想根据其中的内容保留结果column pref 我在下面提供了简化的数据 但这样做的原因是