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

如何使用Python pandas按每行id条目数计算均分价格并拆分多行

最简实现方案(适合入门学习者)

你可以在拆分id前先统计每行的id总数量,算出单条id对应的分摊价格后再执行展开操作,逻辑直白好理解,完整可运行代码如下:

import pandas as pd

# 原始数据构造
data = {'id': ['id_01, id_02', 
               'id_03', 
               'id_04', 
               'id_05', 
               'id_06, id_07, id_08'], 
        'price': [100, 200, 300, 400, 500]}
df = pd.DataFrame(data)

# 1. 统计每行id的总个数
df['id_count'] = df['id'].str.split(',').str.len()
# 2. 计算分摊后的单id价格
df['shared_price'] = df['price'] / df['id_count']
# 3. 拆分id并展开为多行
new_df = df.assign(new_id=df['id'].str.split(',')).explode('new_id')

# 如不需要原id、原price、id_count列,可删除多余列:
# new_df = new_df.drop(columns=['id', 'price', 'id_count'])

如果想要更精简的写法(不用给原df新增临时列),也可以用链式写法实现:

new_df = (df
          .assign(id_count = lambda x: x['id'].str.split(',').str.len(),
                  shared_price = lambda x: x['price'] / x['id_count'],
                  new_id = lambda x: x['id'].str.split(','))
          .explode('new_id')
         )

运行后new_df的shared_price列就是每个拆分后new_id对应的分摊价格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:54:03