累积和的条件计数数据框 - 循环列

2023-12-15

我试图根据每个值的符号在数据帧内重置来计算累积和。这个想法是对每一列分别进行相同的练习。

例如,假设我有以下数据框:

df = pd.DataFrame({'A': [1,1,1,-1,-1,1,1,1,1,-1,-1,-1],'B':[1,1,-1,-1,-1,1,1,1,-1,-1,-1,1]},index=[0, 1, 2, 3,4,5,6,7,8,9,10,11])

对于每一列,我想计算累积和,直到发现符号发生变化;在这种情况下,总和应重置为 1。对于上面的示例,我期望以下结果:

df1=pd.DataFrame({'A_cumcount':[1,2,3,1,2,1,2,3,4,1,2,3],'B_cumcount':[1,2,1,2,3,1,2,3,1,2,3,4],index=[0,1,2,3,4,5,6,7,8,9,10,11]})

类似的问题已经在这里讨论过:Pandas:条件滚动计数

我尝试过以下代码:

nb_col=len(df.columns) #number of columns in dataframe


for i in range(0,int(nb_col)): #Loop through the number of columns in the dataframe

    name=df.columns[i] #read the column name
    name=name+'_cumcount' 


    #add column for the calculation
    df=df.reindex(columns=np.append(df.columns.values, [name])) 

    df=df[df.columns[nb_col+i]]=df.groupby((df[df.columns[i]] != df[df.columns[i]].shift(1)).cumsum()).cumcount()+1

我的问题是,有没有办法避免这个 for 循环?所以我可以避免每次追加一个新列并使计算速度更快。谢谢

收到的答案(一切正常): 来自@尼克松df.apply(lambda x: x.groupby(x.diff().ne(0).cumsum()).cumcount()+1).add_suffix('_cumcount')

来自@jezraeldf1 = (df.apply(lambda x: x.groupby((x != x.shift()).cumsum()).cumcount() + 1).add_suffix('_cumcount'))

来自@斯科特波士顿:

df.apply(lambda x: x.groupby(x.diff().bfill().ne(0).cumsum()).cumcount() + 1)

我认为熊猫需要循环,例如经过apply:

df1 = (df.apply(lambda x: x.groupby((x != x.shift()).cumsum()).cumcount() + 1)
         .add_suffix('_cumcount'))
print (df1)
    A_cumcount  B_cumcount
0            1           1
1            2           2
2            3           1
3            1           2
4            2           3
5            1           1
6            2           2
7            3           3
8            4           1
9            1           2
10           2           3
11           3           1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

累积和的条件计数数据框 - 循环列 的相关文章

  • 将多个 JSON 记录读取到 Pandas 数据帧中

    我想知道是否有一种内存有效的方法将多记录 JSON 文件 每行都是一个 JSON 字典 读取到 pandas 数据帧中 下面是一个包含有效解决方案的 2 行示例 我需要它来处理可能非常大量的记录 示例用途是处理 Hadoop Pig Jso
  • 如何向量化 pandas 数据框中的比较?

    我有数据框的一部分df像这样 nr Time Event 70 8 70 0 70 0 74 52 74 12 74 0 我想将事件分配给最后一列 默认情况下 第一个条目为 1 If Time i lt 7 and nr i nr i 1
  • dplyr 中 select() 的 contains() 和 matches() 之间的区别

    我决定花一些时间彻底学习dplyr 我刚刚遇到select 函数以及它附带的一些辅助函数 通过只是玩弄 我没能发现两者之间的任何区别contains and matches辅助功能 有人可以提供一个例子来说明如何将它们用于不同的目的吗 谢谢
  • Pandas 解析 csv 错误 - 预期 1 个字段,找到 9 个字段

    我正在尝试从 csv 文件解析 planets pd read csv planets csv sep 但我总是会遇到这个错误 ParserError Error tokenizing data C error Expected 1 fie
  • 使用 pd.Grouper() 获取第一个和最后一个元素

    我有一个时间序列 我将其重新采样为 5s 窗口 如下所示 INDEX size price 2018 05 07 21 53 13 731 0 365127 9391 800000 2018 05 07 21 53 16 201 0 666
  • 在 R 中编写每列具有不同小数位数的数据框

    我需要生成一个 dataframe 或 data table 其中每列具有不同的小数位数 例如 Scale Status 1 874521 1 需要以 CSV 格式打印为 Scale Status 1 874521 1 000 正如我所尝试
  • rpy2 (版本 2.3.10) - 将数据从 R 包导入到 python 中

    因此 我尝试将一些数据从 R 包导入到 python 中 以测试我编写的其他一些 python rpy2 函数 特别是 我正在使用SpatialEpiR 中的包和pennLC数据集 所以我能够导入 rpy2 包并正确连接到该包 但是 我不确
  • 循环遍历列并将字符串长度添加为新列

    我有一个包含多列的数据框 并且希望为每个列输出一个单独的列 其中包含每行的长度 我试图迭代列名称 并为每列输出一个附加有 length 的相应列 例如 col1 col2 将转到 col1 列2 col1 长度 列2 长度 我正在使用的代码
  • Python:按组计算数据框中的特定出现次数

    假设我有一个 df df pd DataFrame id 12 35 37 67 99 78 product banana apple banana pear banana apple reordered 1 0 0 1 1 1 id pr
  • 使用具有多个元素的字典过滤数据框

    我已经尝试了几个小时来在这里找到答案 但我无法在我的特定情况下找到任何答案 我能找到的最接近的是 使用字典将多个字符串包含过滤器应用于 pandas 数据框 https stackoverflow com questions 4338916
  • Pandas DataFrame - 列 whos dtype=='category' 上的聚合导致性能下降

    我使用内存使用量较高的大数据帧 并且我读到 如果更改重复值列上的数据类型 我可以节省大量内存 我尝试了一下 确实内存使用量下降了 25 但随后我遇到了我无法理解的性能缓慢问题 我对 dtype 类别 列进行分组聚合 在更改 dtype 之前
  • 数据框应用不接受轴参数

    我有两个数据框 data and rules gt gt gt data gt gt gt rules vendor rule 0 googel 0 google 1 google 1 dell 2 googly 2 macbook 我正在
  • 中断、保存并稍后继续循环的最佳方法

    事情是这样的 我有一个需要几天时间才能运行的循环 我想中断循环 检查进度 然后稍后继续 目前 我正在使用以下内容 for i in 1 100000 Sys sleep i 2 5 print i write csv i i csv 我检查
  • Spark中DataFrame、Dataset、RDD的区别

    我只是想知道有什么区别RDD and DataFrame Spark 2 0 0 DataFrame 只是一个类型别名Dataset Row 在阿帕奇火花 你能将其中一种转换为另一种吗 首先是DataFrame是从SchemaRDD 是的
  • 在 python for 循环中一次运行 3 个变量。

    python 2 7 中具有多个变量的 For 循环 Hello 我不确定如何解决这个问题 我有一个功能可以访问网站并下载 csv 文件 它以特定格式保存 csv 文件 name uniqueID dataType csv 这是代码 imp
  • 使用字典来键入一系列值[重复]

    这个问题在这里已经有答案了 我有一个 pandas 数据框 我想根据另一列的值在新列中创建类别 我可以通过这样做来解决我的基本问题 range range 0 5 Below 5 range 6 10 between range 11 10
  • pandas to_sql sqlalchemy 与 secure_transport 的连接

    我正在尝试将数据发送到具有 require secure transport ON 的服务器上的 mysql 数据库 当我尝试使用以下代码连接到它时 import pandas as pd import pymysql from sqlal
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 检查多个 pd.DataFrame 是否相等

    是否有一种 Pythonic 方式 无循环或递归 来检查是否超过两个pd DataFrames 例如 pd DataFrames 列表 彼此相等吗 就像是 all x equals dfs 0 for x in dfs with dfs数据
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137

随机推荐

  • 在构建 Android 应用程序之前,将 jar 从其他目录拉到 libs 文件夹

    我有一个 Android 项目 它依赖于外部 jar 文件 即A jar 我已经配置了我的安卓build gradle首先构建构建的项目A jar 然后 Android 构建将继续 jar 构建后 将 jar 从其构建文件夹复制到 andr
  • FireFox 警告“未知伪类或伪元素‘隐藏’”不断运行

    我最近发现 Firefox 中出现一个警告 Warning 未知的伪类或伪元素 隐藏 这是页面http eleven23 net eleven23 beta work web lounge22 php 当到达具有 img hidden 的
  • 为什么反汇编后的数据会变成指令?

    我需要一些帮助来理解此时此刻发生的事情 这段代码 发生 jmp Begin 我只知道 com 文件可以是 64kb 因此您希望将所有内容放在一个段中 如果你想放置变量 你需要jmp 但是当我搜索它时 很多指南只是在评论中说 jmp Begi
  • 在 PHP 中检测移动设备的最简单方法

    判断用户是否使用移动设备使用 PHP 浏览我的网站的最简单方法是什么 我遇到过很多可以使用的类 但我希望有一个简单的 if 条件 我有办法做到这一点吗 这是一个来源 检测移动浏览器 下载 PHP 脚本 Code
  • Fortran 中是否有用于将数组初始化为零的内在函数?

    在 Fortran 中是否有办法将数组 向量 矩阵 甚至标量 设置为零 2003 2008 似乎将 Fortran 提升到了一个非常现代的水平 我想知道它们是否包含了一种简单的方法来将数组值设置为零 而无需执行以下操作 do i 1 X d
  • 显然你可以修改 const 值而无需 UB。或者你可以吗?

    开始编辑 用户 user17732522指出调用UB的缺陷来自事实pop back 使根据使用的参考资料无效vector库文档 当发生这种情况时 不需要 constexpr 求值来检测它 因为它不是 C 核心的一部分 然而 user1773
  • Android 的“onActivityResult”机制不起作用

    我在一个简单的应用程序中遇到了一个大而令人沮丧的问题 我有两个活动 A 和 B 活动 A 通过单击按钮打开活动 B 活动 B 有两个 结束 如果用户单击 B Back 如果刚刚完成 并返回到 A 如果用户单击 B OK 按钮 则活动 B 完
  • 为什么 Python 字符串是不可变的?使用它们的最佳实践

    让Python字符串不可变的设计原因是什么 它如何让编程变得更容易 我习惯了可变字符串 比如 C 中的字符串 如果没有可变字符串 我该如何编程呢 有没有最佳实践 当您收到字符串时 您将确保它保持不变 假设您要构造一个Foo如下带有字符串参数
  • 在 Silverlight 中将 XML 动态绑定到 DataGrid

    我一直在尝试在 Silverlight 特别是 Silverlight 4 但 SL3 中的任何解决方案也可以 中将 XML 通过 XElement 动态绑定到 DataGrid 但一直无法做到这一点 我希望动态地执行此操作 即 没有严格的
  • RewriteRule 无法编译正则表达式

    我以前的服务器工作正常 今天我更换了新服务器 并且 RewriteRule 无法在我的 htaccess 上编译正则表达式 如何修复这条线 RewriteRule category 0 9 category php pid 1 catnam
  • 你可以将 UITabBarController 推入 UINavigationController 中吗

    是否无法将 UITabBarController 推入 UINavigationController 中 我在旧版本的 iOS 中读过 但现在情况仍然如此吗 简而言之 是的 你可以 但仅仅因为你可以 并不意味着你应该这样做 这UITabBa
  • Django 中的导航

    我刚刚在 django 中完成了我的第一个小 web 应用程序 我喜欢它 我即将开始将旧的 PHP 生产站点转换为 django 作为其模板的一部分 有一个导航栏 在 PHP 中 我在模板代码中根据当前 URL 检查每个导航选项的 URL
  • 按时间或运行总和进行缓冲以进行反应式扩展

    我对反应式扩展相当陌生 想要根据时间缓冲流 或者根据不超过阈值的运行总和 每个项目的大小由 lambda 指定 以先发生者为准 就像现有的Buffer按计数或时间 目前我已经编写了自己的实现Buffer方法按预期工作 使用ISchedule
  • 使用 .htaccess 附加参数

    我正在努力处理 htaccess 重写命令 我拥有的是 RewriteCond HTTP HOST www mywebsite co uk RewriteCond REQUEST URI subfolder RewriteRule subf
  • D3.js:根据值更改条的颜色[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我一直在尝试 d3 js 条形图 我想根据 y 轴的值更改颜色 如何实现这一点 我尝试添加线性渐变 但后来我失去了对它的控制 我正在编写的代码基于此 http bost ocks
  • 切片和数组有什么区别?

    为什么两者都是 u8 and u8 3 在这个例子中好吗 fn main let x u8 1u8 2 3 println x let y u8 3 1u8 2 3 println y 事实是 T n 可以强迫 T 这是让他们可以忍受的方面
  • 无法使用 PHP 执行多个 MariaDB 查询

    我在 MariaDB 中执行 SQL 查询时遇到了一个小问题 所有 PHP 变量都不为空 我想同时执行两个查询 在 MySQL 中它可以工作 但在 MariaDB 服务器中我不能 因为我收到错误 我有一个查询 UPDATE users SE
  • 如何使用vb.net表单删除MS Access数据库的记录以及如何使用vb.net表单进入受密码保护的数据库

    我是 vb net 的新手 而且还是一名学生 我创建了一个表单来在 vb net 中输入学生注册详细信息 以满足教育需求 我使用 MS Access 2010 创建了一个数据库并将其链接到我的 vb 表单 它工作正常 我可以通过 vb ne
  • C# 有 Handles 关键字吗?

    Protected Sub Menu1 MenuItemClick ByVal sender As Object ByVal e As System Web UI WebControls MenuEventArgs Handles Menu
  • 累积和的条件计数数据框 - 循环列

    我试图根据每个值的符号在数据帧内重置来计算累积和 这个想法是对每一列分别进行相同的练习 例如 假设我有以下数据框 df pd DataFrame A 1 1 1 1 1 1 1 1 1 1 1 1 B 1 1 1 1 1 1 1 1 1 1