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

基于min和max值重复Pandas DataFrame行并生成递增value列

Pandas按min/max值重复行并生成递增value列

输入示例

IDminmax
Product ABC36
Product XXXX810

期望输出

IDminmaxvalue
Product ABC363
Product ABC364
Product ABC365
Product ABC366
Product XXXX8108
Product XXXX8109
Product XXXX81010

解决方案

方法一:apply + explode(简洁直观)

利用apply为每行生成从min到max的序列,再用explode将序列拆分成多行:

import pandas as pd

# 构造输入DataFrame
df = pd.DataFrame({
    'ID': ['Product ABC', 'Product XXXX'],
    'min': [3, 8],
    'max': [6, 10]
})

# 生成value序列并展开
df['value'] = df.apply(lambda row: pd.Series(range(row['min'], row['max'] + 1)), axis=1)
df = df.explode('value', ignore_index=True)

方法二:numpy + repeat(高效适合大数据)

通过计算重复次数先复制行,再用numpy批量生成value列,性能更优:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'ID': ['Product ABC', 'Product XXXX'],
    'min': [3, 8],
    'max': [6, 10]
})

# 计算每行需要重复的次数
repeat_counts = df['max'] - df['min'] + 1
# 重复行并重置索引
df_repeated = df.loc[df.index.repeat(repeat_counts)].reset_index(drop=True)
# 批量生成递增的value值
values = np.concatenate([np.arange(mn, mx + 1) for mn, mx in zip(df['min'], df['max'])])
df_repeated['value'] = values

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:12:03