Pandas - 根据条件重复行

2023-11-23

如果该行满足条件,我试图创建一个重复的行。在下表中,我根据 groupby 创建了累积计数,然后对 groupby 的 MAX 进行了另一个计算。

df['PathID'] = df.groupby(DateCompleted).cumcount() + 1
df['MaxPathID'] = df.groupby(DateCompleted)['PathID'].transform(max)

Date Completed    PathID    MaxPathID
1/31/17           1         3
1/31/17           2         3
1/31/17           3         3
2/1/17            1         1
2/2/17            1         2
2/2/17            2         2

在本例中,我只想复制 2017 年 2 月 1 日的记录,因为该日期只有一个实例(即 MaxPathID == 1)。

期望的输出:

Date Completed    PathID    MaxPathID
1/31/17           1         3
1/31/17           2         3
1/31/17           3         3
2/1/17            1         1
2/1/17            1         1
2/2/17            1         2
2/2/17            2         2

提前致谢!


我想你需要得到unique行按Date Completed进而concat原始行:

df1 = df.loc[~df['Date Completed'].duplicated(keep=False), ['Date Completed']]
print (df1)
  Date Completed
3         2/1/17

df = pd.concat([df,df1], ignore_index=True).sort_values('Date Completed')
df['PathID'] = df.groupby('Date Completed').cumcount() + 1
df['MaxPathID'] = df.groupby('Date Completed')['PathID'].transform(max)
print (df)
  Date Completed  PathID  MaxPathID
0        1/31/17       1          3
1        1/31/17       2          3
2        1/31/17       3          3
3         2/1/17       1          2
6         2/1/17       2          2
4         2/2/17       1          2
5         2/2/17       2          2

EDIT:

print (df)
  Date Completed  a  b
0        1/31/17  4  5
1        1/31/17  3  5
2        1/31/17  6  3
3         2/1/17  7  9
4         2/2/17  2  0
5         2/2/17  6  7

df1 = df[~df['Date Completed'].duplicated(keep=False)]
#alternative - boolean indexing by numpy array
#df1 = df[~df['Date Completed'].duplicated(keep=False).values]
print (df1)
  Date Completed  a  b
3         2/1/17  7  9

df = pd.concat([df,df1], ignore_index=True).sort_values('Date Completed')
print (df)
  Date Completed  a  b
0        1/31/17  4  5
1        1/31/17  3  5
2        1/31/17  6  3
3         2/1/17  7  9
6         2/1/17  7  9
4         2/2/17  2  0
5         2/2/17  6  7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas - 根据条件重复行 的相关文章

随机推荐

  • Linux 中的“find -exec”shell 函数

    有没有办法得到find执行我在 shell 中定义的函数 例如 dosomething echo Doing something with 1 find exec dosomething 其结果是 find dosomething No s
  • 在android中实现徒手裁剪

    我正在尝试使用画布在 Android 中实现徒手裁剪 我用drawPath并将其存储在列表中并将其绘制在画布路径绘图中 像这样 但现在我想用这段代码使该路径中的所有像素都位于侧面区域 但我不知道该怎么做 public Bitmap getB
  • 文件上传作为带有其他字段的表单的一部分

    我有一个 ASP NET MVC 网站 我需要一个页面 用户必须在其中输入多个字段 包括图像文件 我可以找到很多很多使用 MVC 上传文件的参考资料 但他们不会将文件作为包含其他字段的表单的一部分上传 理想情况下 字段和文件将发送到单个控制
  • 单击启动器图标时恢复上次活动

    正如我所看到的 当单击启动器图标时 大多数应用程序都会恢复上次活动 然而 这似乎不是默认行为 在我的应用程序启动器活动中 单击启动器图标时总是启动 当单击启动器图标并且应用程序已经运行时 如何配置我的应用程序以恢复上次活动 Problem
  • python 检查序列中的位是真还是假

    我想知道序列中的某个位是 1 还是 0 真或假 如果我有 11010011 的一些子序列 我如何检查第四个位置是 True 还是 False example 10010101 4th bit gt False 10010101 3rd bi
  • 为派生类提供模板专业化的最简单方法

    我有以下场景 class my base class my derived public my base template
  • Collections.binarySearch() 与 List indexOf()

    我有超过 37K 项的列表 并且我已经实施了hashCode equals 所以我想知道Collections binarySearch 可以帮助提高性能并且比indexOf method 如果您的收藏已排序 binarySearch 将是
  • JavaScript 中的双感叹号运算符和 Boolean() 有什么区别? [复制]

    这个问题在这里已经有答案了 我知道 variable将变量转换为布尔值和函数Boolean 根据 ecma262 规范 还将通过调用执行类型转换ToBoolean value 我的问题是 有什么区别 是 性能比 Boolean 更好 它们是
  • 我是否必须在每个页面添加“<%@ Register assembly=”?

    我升级了 DevExpress 组件 但在我的应用程序中我必须更改每个组件 是的 看http we
  • C# 中的静态类

    在回答这个问题时 https stackoverflow com questions 352317 c coding question 352327 这让我想知道 将静态类视为等同于实现单例模式的非静态类实例是否存在任何危险 对我来说唯一显
  • 控件的自定义设计器

    我有一个派生自 SplitContainer 的自定义类 namespace Builder Components public partial class ProjectSidebar SplitContainer public Proj
  • 获取画布中的鼠标位置[重复]

    这个问题在这里已经有答案了 有没有办法获得鼠标的位置
  • C 中的完美数

    我需要编写一个 C 程序来找到完美数 main int n 1000 sum 0 for int num 1 num lt n num sum 0 for int i 1 i lt num i if num i sum i if sum n
  • 如何在 Windows 中的 git-bash 中执行位于带空格的文件夹(即“Program Files”)中的命令?

    当我使用 git bash 时 我有时想调用我的命令 PATH 实际上在我的 PATH 但如果 该命令位于包含空格的文件夹中的某个位置 则它将无法运行 例如 如果程序打开C Program Files whatever aCmd exe我输
  • 动态增加java堆空间

    我编写了一个 java 程序 用于测试具有不同数量处理器的不同机器上的几个多线程算法的速度 在某些机器上 合并排序 会失败 因为它需要相当大的堆空间才能处理非常大的数组 我可以在运行程序之前轻松地自己更改 java 堆空间 但我觉得更健壮且
  • 泛型类的类对象(java)

    java中有没有一种方法可以获取类似的实例Class
  • 如何在 Java Swing 中创建窗口关闭处理程序

    我试图在我的窗口 使用 Java Swing 创建的 关闭时调用一个函数来进行清理 在我的初始化代码中我这样做 public class FormLogin extends JFrame private void initComponent
  • 为什么@RequestMapping注解在java中接受String参数,但在scala中不接受?

    阅读 RequestMapping文档 http static springsource org spring docs 2 5 x api org springframework web bind annotation RequestMa
  • Eclipse 内容辅助错误

    最近 我在 Eclipse 中的内容辅助方面遇到了越来越多的问题 在我的一些项目中 我没有从内容协助中得到任何建议 而在其他项目中 我得到了部分或全部预期的建议 通常 Eclipse 中不会出现 错误 但下面是我收到错误时的一个示例 内容辅
  • Pandas - 根据条件重复行

    如果该行满足条件 我试图创建一个重复的行 在下表中 我根据 groupby 创建了累积计数 然后对 groupby 的 MAX 进行了另一个计算 df PathID df groupby DateCompleted cumcount 1 d