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

如何将DataFrame中的值按指定mesh数拆分展开为多行?

拆分DataFrame行并生成均分列

基础场景

输入数据

给定DataFrame df1:

value   mesh
0       10      2
1       12      3
2       5       2

目标

将df1的每一行拆成mesh列指定的行数,新增value/mesh列,值为原行value除以对应mesh的结果,最终得到如下df2:

value/mesh
0   5.0
1   5.0
2   4.0
3   4.0
4   4.0
5   2.5
6   2.5

实现代码

import pandas as pd

# 初始化示例数据
df1 = pd.DataFrame({'value': [10,12,5], 'mesh': [2,3,2]})

# 计算均分后的值
df1['value/mesh'] = df1['value'] / df1['mesh']
# 按mesh的值重复对应行,然后重置索引
df2 = df1.loc[df1.index.repeat(df1['mesh'])].reset_index(drop=True)
# 保留需要的列
df2 = df2[['value/mesh']]

通用场景(包含其他附加列)

输入数据

如果df1包含其他列,比如:

value   mesh_value  other_value 
0   10      2           0
1   12      3           1
2   5       2           2

目标

拆分每行至mesh_value指定行数,生成value/mesh_value均分列,同时保留其他列的对应值,最终结果:

value/mesh_value    other_value
0   5.0                 0
1   5.0                 0
2   4.0                 1
3   4.0                 1
4   4.0                 1
5   2.5                 2
6   2.5                 2

实现代码

import pandas as pd

# 初始化示例数据
df1 = pd.DataFrame({
    'value': [10,12,5],
    'mesh_value': [2,3,2],
    'other_value': [0,1,2]
})

# 计算均分列
df1['value/mesh_value'] = df1['value'] / df1['mesh_value']
# 重复行并重置索引
df2 = df1.loc[df1.index.repeat(df1['mesh_value'])].reset_index(drop=True)
# 调整列顺序(按需选择)
df2 = df2[['value/mesh_value', 'other_value']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:10:35