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

如何在Pandas中根据列值重复数据行?

Pandas根据指定列值重复行的实现方法

你可以通过以下两种简洁的方式实现需求:

方法一:使用repeat + loc(高效推荐)

利用索引重复提取对应行,再移除不需要的value列:

import pandas as pd

df = { "id" : ["apple", "potato","lemon"],"som" : [4, 2, 7] , "value" : [1, 2, 4]}
df = pd.DataFrame(df)

# 根据value列的值重复每行
results_df = df.loc[df.index.repeat(df['value'])]
# 删除value列并重置索引
results_df = results_df.drop('value', axis=1).reset_index(drop=True)

# 输出结果
print(results_df)

方法二:使用apply + explode

先将需要保留的列转为对应长度的列表,再展开列表:

import pandas as pd

df = { "id" : ["apple", "potato","lemon"],"som" : [4, 2, 7] , "value" : [1, 2, 4]}
df = pd.DataFrame(df)

# 将id和som列转换为对应value长度的列表
df['id'] = df.apply(lambda row: [row['id']] * row['value'], axis=1)
df['som'] = df.apply(lambda row: [row['som']] * row['value'], axis=1)

# 展开列表并清理列
results_df = df.explode(['id', 'som']).drop('value', axis=1).reset_index(drop=True)

# 输出结果
print(results_df)

两种方法最终都会得到你期望的结果,其中方法一的性能更优,适合处理大规模数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:41:01