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

如何用Pandas将同品牌行价格统一为该品牌最后一行的价格

当然可以用Pandas实现这个需求!

这是个很常见的数据规整场景,用Pandas的groupby配合transform方法就能完美解决,而且能完全保留所有原始行,不需要做分组聚合后再合并的繁琐操作。

步骤详解:

首先我们先还原你的示例数据集方便测试:

import pandas as pd

data = {
    'Brand': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'],
    'Price': [10, 20, 30, 40, 60, 15, 25, 35],
    'Color': ['Blue', 'Red', 'Green', 'Yellow', 'Black', 'Blue', 'Red', 'Black'],
    'Category': ['Shoes']*5 + ['Bags']*3
}
df = pd.DataFrame(data)

接下来就是核心操作:

# 按Brand分组,提取每个品牌最后一行的Price,再广播到该品牌的所有行
df['Price'] = df.groupby('Brand')['Price'].transform('last')

处理后结果:

运行后你的数据集会变成这样:

BrandPriceColorCategory
0A60BlueShoes
1A60RedShoes
2A60GreenShoes
3A60YellowShoes
4A60BlackShoes
5B35BlueBags
6B35RedBags
7B35BlackBags

方法原理:

  • groupby('Brand')会把数据按品牌拆分成一个个独立子组
  • transform('last')会对每个子组的Price列取最后一个值,然后将这个值自动填充到该子组的每一行,最终生成一个和原DataFrame长度完全匹配的Series
  • 直接赋值给原Price列,就完成了所有行的Price替换,同时完整保留了原始行的其他字段

这个方法高效又简洁,不管你有多少个品牌都能自动适配~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:29:03