pandas 中的新列 - 通过应用列表 groupby 将系列添加到数据框

2024-01-14

给出以下内容df

  Id other  concat
0  A     z       1
1  A     y       2
2  B     x       3
3  B     w       4
4  B     v       5
5  B     u       6

我想要的结果是new包含分组值作为列表的列

  Id other  concat           new
0  A     z       1        [1, 2]
1  A     y       2        [1, 2]
2  B     x       3  [3, 4, 5, 6]
3  B     w       4  [3, 4, 5, 6]
4  B     v       5  [3, 4, 5, 6]
5  B     u       6  [3, 4, 5, 6]

这类似于以下问题:

在 pandas groupby 中对列表中的行进行分组 https://stackoverflow.com/questions/22219004/grouping-rows-in-list-in-pandas-groupby

为 pandas.DataFrame 复制 GROUP_CONCAT https://stackoverflow.com/questions/18138693/replicating-group-concat-for-pandas-dataframe

但是,它应用您从中获得的分组df.groupby('Id')['concat'].apply(list),这是一个Series比数据帧更小的尺寸,到原始数据帧。

我已经尝试了下面的代码,但它不适用于数据框:

import pandas as pd
df = pd.DataFrame( {'Id':['A','A','B','B','B','C'], 'other':['z','y','x','w','v','u'], 'concat':[1,2,5,5,4,6]})
df.groupby('Id')['concat'].apply(list)

我知道transform可用于将分组应用于数据帧,但在这种情况下不起作用。

>>> df['new_col'] = df.groupby('Id')['concat'].transform(list)
>>> df
  Id  concat other  new_col
0  A       1     z        1
1  A       2     y        2
2  B       5     x        5
3  B       5     w        5
4  B       4     v        4
5  C       6     u        6
>>> df['new_col'] = df.groupby('Id')['concat'].apply(list)
>>> df
  Id  concat other new_col
0  A       1     z     NaN
1  A       2     y     NaN
2  B       5     x     NaN
3  B       5     w     NaN
4  B       4     v     NaN
5  C       6     u     NaN

groupby with join

df.join(df.groupby('Id').concat.apply(list).to_frame('new'), on='Id')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas 中的新列 - 通过应用列表 groupby 将系列添加到数据框 的相关文章

随机推荐

  • Django模型列表顺序字段更新

    我有一张桌子 比方说Book 具有以下模型定义 class Book models Model name models CharField name of the book max length 10 sequence models Int
  • System.Threading.Tasks.Dataflow 和 Microsoft.Tpl.Dataflow 之间有什么区别

    有 2 个不同的官方 TPL Dataflow nuget 包 我很困惑选择应该使用哪一个 据我了解 System Threading Tasks Dataflow 版本比其他版本稍新 而且 System Threading Tasks D
  • 警告 - 初始化使指针来自整数而不进行强制转换

    我发现了类似的问题 但我认为它们不适用于我的具体问题 所以如果它们适用 我很抱歉 我作为一年级 CS 学生正在学习 C 并尝试用 C 进行测验 但我一无所获 因为每次我尝试编译以查看它是否正常工作时 我都会收到消息 警告 初始化使指针从未经
  • 新数据框列作为另一个数据框的函数(摘要)对我不起作用

    我想创建一个新的计算列 另一列文本的摘要 为了让您重现 我创建了一个 df 作为可重现的示例 df lt data frame name replicate 1000 paste sample LETTERS 20 replace TRUE
  • 如何添加case语句以在每条记录后添加break?

    每行之后应该有一个休息时间LIKE A 当找到下一条记录时LIKE B stmt con gt prepare SELECT FROM fistevent WHERE Event Id AND TicketType AND row name
  • 无需 jQuery 即可获得 innerWidth() 等效项

    我目前正在努力从我编写的一些代码中消除 jQuery 并且我有一部分代码 其中我正在计算某些代码的内部和外部宽度span元素 这好像是 getBoundingClientRect 对于获取元素的外部宽度效果很好 但我在获取内部宽度方面有点困
  • 如果参数有成员变量则特殊化函数

    我有一个模板化的错误报告函数 因为它可以报告许多不同消息类别的错误 template
  • 将希腊字符和星号 (*) 添加到轴标题

    我想在 R 中的直方图的 x 轴上添加一个希腊字符 我可以单独写希腊字符或与帽子一起写 但问题是我需要这个字符带有帽子和星号 一起 更具体地说 我想要像 hat phi 这是我所做的 x rnorm 1000 hist x nclass 1
  • sublime text-“列出包含“查找”字符串的行

    如何列出包含 find 命令中的匹配项的行 即 我想在单独的窗口中列出所有匹配的行 目前只能转到下一个 上一个 查找 Try Find in Files Cmd Shift F on a Mac presumably Ctrl Shift
  • 多个线程同时使用同一个 JDBC 连接

    我试图更好地理解如果多个线程尝试使用相同的 JDBC 连接同时执行不同的 sql 查询会发生什么 结果在功能上是否正确 对性能有何影响 会穿线A必须等待线程B完全完成其查询 或者会穿线A能够在线程之后立即发送其查询B已发送查询 之后数据库将
  • 如何使用 Hibernate Criteria 选择嵌套属性

    我有三个实体 例如注册 用户和国家 地区 基本上 一个注册属于一个用户 一个用户属于一个国家 现在我尝试使用以下内容从注册中选择国家 地区名称 Criteria criteria getSession createCriteria Regi
  • 调试和发布版本之间可能会出现差异? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么R包lubridate无法解析多种格式的向量?

    我正在使用包lubridate解析异构格式日期的向量并将它们转换为字符串 如下所示 parse date time c 12 17 1996 04 00 00 PM 4 18 1950 0130 c m d Y I M S p m d Y
  • 异步图像下载器

    我编写了一个小类来使用 NSURLConnection 执行图像的下载 其想法是将下载委托给此类以避免阻止执行 因此 我将目标 UIImageView 通过引用 和 url 传递给函数并开始下载 void getImage UIImageV
  • 如何将图像转换为灰度?

    我想通过代码 android 做与上图完全相同的事情 但我对执行此操作的算法感到困惑 我所知道的是 对于每个像素 将 RGB 转换为 HSL 将 HSL 转换回 RGB 谁能帮我解释一下第 2 步要做什么 非常感谢 ps 我可以通过 Col
  • org.openqa.selenium.WebDriverException:未知错误:无法确定加载状态

    我是 Selenium 的新手 需要一些线索来查找以下错误的根本原因 硒版本 3 5 3 ChromeDriver 版本 2 29 4 Chrome 版本 63 org openqa selenium WebDriverException
  • SAP HANA 交叉应用替代方案

    HANA sql 中是否有 MsSql 中可用的 交叉应用 运算符的替代方案 或者有没有办法对表中的值应用函数 就像是 select T F from T cross join someFunction T Value F 您可以在 SAP
  • 为什么我的 ExtJS 网格中的按钮显示为“[object Object]”?

    In an ExtJS网格我有一列 其中当单元格的内容为某个值时 button应该显示 我定义了将包含这样的按钮的列 该按钮调用渲染函数 header Payment Type width 120 sortable true rendere
  • 在nodejs中将文件附加到zip

    我正在制作一个应用程序 您可以在其中编辑文件 它应该将编辑后的文件附加到 zip 存档中并使其可下载 它应该是跨平台的 Windows 和 Linux 我的目标是以编程方式生成编辑后的文件并将其附加到静态存档 始终相同 大约 3 4MB 但
  • pandas 中的新列 - 通过应用列表 groupby 将系列添加到数据框

    给出以下内容df Id other concat 0 A z 1 1 A y 2 2 B x 3 3 B w 4 4 B v 5 5 B u 6 我想要的结果是new包含分组值作为列表的列 Id other concat new 0 A z