python - 重复并增加 Pandas 的列值
问题描述
我对 Pandas 很陌生,所以这听起来很愚蠢。我的数据框如下所示: 在此处输入图像描述
目标是检查字段“D”并创建具有相同 ID 的 D 行,但每行将“时间”增加 5。例如,如果 ID = 3、Time = 0 和 D = 5,那么我希望在具有相同 ID 的原始行之后再有 5 行,但每行的时间增加 5。因此时间字段将为 0、5、10、15、20、25,而行中的其他字段保持不变。
这在熊猫中可能吗?我试过以下
df = pd.DataFrame(probeTTableTups, columns=['ID','Time','D'])
df2 = df.loc[df.index.repeat(df.D)].reset_index(drop=True)
df2['Time'] += 5
print(df2)
我尝试重复行 D 次并将 Time 字段增加 5,但它只是为 Time 创建了相同的值,而我需要在 Time 列中具有增量数字。
任何帮助深表感谢!
解决方案
用于GroupBy.cumcount
每个重复索引值和多个的计数器5
:
df2 = df.loc[df.index.repeat(df.D)]
df2['Time'] = df2.groupby(level=0).cumcount() * 5
如果需要还添加Times
:
df2['Time'] = df2.groupby(level=0).cumcount() * 5 + df2['Time']
推荐阅读
- python - 使用 mongoengine 进行烧瓶舞的自定义 Oauth 令牌存储
- c++ - C++ 程序以一些返回值退出而不运行一些行?
- java - Apache Tomcat 10.0.0-M1 使用 JSP 绝对 uri http://java.sun.com/jsp/jstl/core 无法解析
- javascript - 单击 + 按钮,添加字段
- protocol-buffers - 什么是弃用协议缓冲区 v3 中的字段的最佳方法,保留与弃用 = true?
- express - Express.js 应用程序错误:找不到删除帖子路由
- java - 如何将数据库返回的对象中的数据打印为对象列表?
- html - 如何在网格布局中正确定位按钮以响应
- java - Waffle SSPI如何设置SPNEGOmutualFlag
- mysql - 在“WHERE”子句中使用交易日期时查找最早交易日期