You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按DataFrame中catch列数值重复对应行记录

解决方案

你可以用Pandas的repeat()方法结合索引定位来实现需求,具体步骤如下:

1. 构造示例DataFrame

先还原你提供的数据集:

import pandas as pd

data = {
    'catch': [253, 4947, 3656, 3259, 2902, 4605, 764, 256],
    'yr': [2013]*8,
    'mesh': [0, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5]
}
df = pd.DataFrame(data)

2. 根据catch列数值重复行

利用df.index.repeat()生成重复的索引,再通过loc提取对应行,最后重置索引避免重复:

result_df = df.loc[df.index.repeat(df['catch'])].reset_index(drop=True)

验证结果

可以查看结果的行数是否符合预期:

print(result_df.shape[0])  # 输出:253+4947+3656+3259+2902+4605+764+256 = 20642

这样生成的result_df里,每一行都会按照原catch列的数值重复对应次数,且yr和mesh列的值保持与原行一致,catch列也保留原行的数值。

内容的提问来源于stack exchange,提问作者vermicellion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:01:21