GroupBy 列标题前缀上的列

2024-03-09

我有一个数据框,其列名以一组前缀列表开头。我想获取数据框中按以相同前缀开头的列分组的值的总和。

df = pd.DataFrame([[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]],
              columns=['abc', 'abd', 'wxy', 'wxz'])
prefixes = ['ab','wx']
df
    abc abd wxy wxz
0   1   2   3   4
1   1   2   3   4
2   1   2   3   4
3   1   2   3   4

我能弄清楚如何做到这一点的唯一方法是循环遍历前缀列表,从数据框中获取以该字符串开头的列,然后对结果求和。

results = []
for p in prefixes:
  results.append([p, df.loc[:, df.columns.str.startswith(p)].values.sum()])
results = pd.DataFrame(results,)
results.set_index(keys=[0], drop=True).T

    ab  wx
1   12  28

我希望有一种更优雅的方法来做到这一点,也许使用 groupby() ,但我无法弄清楚。


首先,需要确定哪些列包含哪些前缀。然后我们用它来执行groupby.

grouper = [next(p for p in prefixes if p in c) for c in df.columns]
u = df.groupby(grouper, axis=1).sum()

   ab  wx
0   3   7
1   3   7
2   3   7
3   3   7

快到了,现在,

u.sum().to_frame().T

   ab  wx
0  12  28

另一种选择是使用np.char.startswith and argmax向量化:

idx = np.char.startswith(
    df.columns.values[:, None].astype(str), prefixes).argmax(1)

(pd.Series(df.groupby(idx, axis=1).sum().sum().values, index=prefixes)
   .to_frame()
   .transpose())

   ab  wx
0  12  28
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GroupBy 列标题前缀上的列 的相关文章

随机推荐

  • PHP 中的 AES/CBC/PKCS#5 加密算法

    我正在尝试使用 表单集成 方法将 SagePay 支付网关集成到网站中 基本上 表单集成方法的工作原理是在网页中插入表单 并在选择表单的 提交 按钮时将信息发布到 SagePay 的服务器 在将信息发送到 SagePay 的服务器之前 必须
  • 如何在xcode中链接glew

    我无法将 glew 与 xcode 链接 我有 glew 库位于 usr local lib libGLEW dylib 当我在命令行中编译文件时 g usr local lib libGLEW dylib framework OpenGL
  • 通过同一程序集的反射生成代码

    我已经开始涉足 T4 一开始相处得很好 但后来遇到了一个实际上非常明显并且可能无法解决的问题 但也许有一种方法我只是缺乏知道或看到的经验 给定以下课程 public class T4Test CodeActivity protected o
  • 无法连接,因为目标机器主动拒绝 127.0.0.1:2382

    我正在尝试连接 SSAS 引擎 SQL Server Denali 但失败并出现以下错误 无法建立连接 因为目标计算机主动拒绝它 127 0 0 1 2382 SSAS 服务在网络服务帐户下运行 SQL 浏览器服务在本地系统帐户上运行 你运
  • 仅使用 Yocto/bitbake 快速重建设备树?

    因此 每次修改设备树时 我通常会更改自定义配方中的 dts 并重建映像 重建需要很长时间 因为它会重建整个内核 然后需要构建镜像 最后部署到目标设备 我是否缺少任何仅重建设备树的技巧 UPDATE 我已将 g0hl1n 的答案标记为正确答案
  • 面板数据中汇总回归模型的模型预测

    我正在尝试生成一个预测模型 在该模型中 我每年都会进行多次汇总回归 基于前几年 从而允许系数随时间变化 这在提供的示例数据中可能没有意义 但在我的示例中实际上是这样做的 这是我到目前为止的想法 我将代码调整为 plm 包中的可重现示例 数据
  • 不同文化信息之间的日期时间转换

    我想在国家 地区之间创建不同的转换 并且我正在使用 C 我正在尝试将日期时间转换为另一个日期时间 格式为 dd mmm yyyy CultureInfo ci CultureInfo CreateSpecificCulture langua
  • seq2seq 中的 TimeDistributed(Dense) 与 Dense

    鉴于下面的代码 encoder inputs Input shape 16 70 encoder LSTM latent dim return state True encoder outputs state h state c encod
  • 在 Maven 中设置注释处理器生成的源目录

    我正在尝试将使用注释处理器生成源的构建移动到 Maven 我尝试按如下方式配置 maven compiler plugin
  • Angular6 - 读取文本/纯文本的响应正文

    我正在执行注册操作 当用户成功注册时 我会在后端返回他的 ID 例如 105 当注册失败 用户已存在 时 我返回 USER EXISTS 我已经在 Postman 上检查了请求 响应正文是正确的 在这两种情况下 我都会返回 纯文本 文本 但
  • Django 双向ManyToMany - 如何防止在第二个模型上创建表?

    我有两个模型 每个模型都有一个共享的 ManyToMany 使用 db table 字段 但是如何防止syncdb 尝试为第二个模型创建共享表呢 class Model1 models Model othermodels ManyToMan
  • 您可以使用 Spark SQL/Hive/Presto 直接从 Parquet/S3 复制到 Redshift 吗?

    我们有大量的服务器数据存储在S3 很快将在Parquet格式 数据需要进行一些转换 因此它不能直接从 S3 复制 我将使用Spark访问数据 但我想知道是否可以跳过一个步骤并运行查询来提取 转换数据 然后复制它 而不是使用 Spark 操作
  • 如何将一个 xhtml 文档中的 div 部分提取到另一个 xhtml 文档中

    我正在尝试使用 xslt 将一个 xhtml 文档中的 div 部分提取到另一个 xhtml 文档中 然而 我没有成功 相反 xslt 转换产生了有线输出 假设要转换以下xhtml文档 some blabla div div class t
  • 无损分解与依赖关系保留

    其中任何一个都暗示另一个吗 我的逻辑是 如果保留所有依赖关系 则不会丢失信息 同样 如果分解是无损的 则一定不会违反功能依赖关系 因此本质上 依赖关系保存是确保分解无损的一种方法 我很难接受 否认它 那么这两者是否可以相互保证 或者是否存在
  • 如何从 URL 中排除单词或字符串 - 正则表达式

    我使用以下正则表达式来匹配 PHP 中的所有类型的 URL 效果非常好 reg exUrl b w www s lt gt w d punct s s 但现在 我想排除 Youtube youtu be 和 Vimeo URL 经过研究后我
  • 如何在实体框架中获取 SQL Server 序列的下一个值?

    我想使用 SQL Serversequence objects http msdn microsoft com en IN library ff878091 aspx在实体框架中显示编号规则 然后将其保存到数据库中 在当前场景中 我正在通过
  • 使用 Hotmail smtp 在 PHP 中发送邮件

    我正在尝试使用 Hotmail Smtp 以 PHP 发送邮件 但我收到如下错误 2014 03 13 06 59 01 CLIENT gt SERVER EHLO site com 2014 03 13 06 59 01 CLIENT g
  • 将数学表达式与正则表达式匹配?

    例如 这些是有效的数学表达式 a b c a b 1 50 apple 0 5 boy 1 这些是无效的数学表达式 a b 1 5 0 two consecutive signs two consecutive operators inva
  • 如何使元素对点击透明但仍然可见?

    我有兴趣在 iframe 之类的东西上放置一个嵌入框阴影 虽然将 div 覆盖在 iframe 上的策略可以提供预期的视觉显示 但 div 随后会阻止 iframe 本身上的点击 Sample http jsfiddle net YqXPg
  • GroupBy 列标题前缀上的列

    我有一个数据框 其列名以一组前缀列表开头 我想获取数据框中按以相同前缀开头的列分组的值的总和 df pd DataFrame 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 columns abc abd wxy wxz p