输出中带有“小计”值的Python Pandas Groupby?
Posted
技术标签:
【中文标题】输出中带有“小计”值的Python Pandas Groupby?【英文标题】:Python Pandas Groupby with 'Subtotal' values in output? 【发布时间】:2020-04-23 17:44:06 【问题描述】:我真的是 python 新手,在源数据框 ['Product', 'Customer'] 上使用 pandas groupby 函数时,在简化创建“小计值”的步骤时遇到了一些困难。
请帮助提供任何指示和解决方案。谢谢!
# Desired Output
Product Customer Qty
Item A Cust1 5
Cust4 10
Subtotal 15
Item B Cust1 15
Cust2 5
Cust6 1
Subtotal 21
Item C Cust3 1
Subtotal 1
# Source Dataframe
Product Customer Qty
0 Item A Cust1 5
1 Item A Cust4 10
2 Item B Cust1 15
3 Item B Cust2 5
4 Item B Cust6 1
5 Item C Cust3 1
# Source Dataframe code
source_df = pd.DataFrame(
'Product' : ['Item A', 'Item A', 'Item B', 'Item B','Item B', 'Item C'],
'Customer' : ['Cust1', 'Cust4', 'Cust1', 'Cust2', 'Cust6', 'Cust3'],
'Qty' : [5,10,15,5,1,1]
)
我自己的解决方案:
-
按“产品”创建一个中间数据框组并聚合“数量”,并用一个填充了“小计”字符串值的列
连接源数据帧和中间数据帧
再次对 ['Product', 'Customer'] 执行 groupby 以获得所需的输出
如果客户的姓名在“S”之后以字母开头,则它不起作用,因为它可能在“小计”下方排序。
# Intermediate Subtotal Dataframe
Product Customer Qty
0 Item A Subtotal 15
1 Item B Subtotal 21
2 Item C Subtotal 1
【问题讨论】:
按Product
、Customer
和Qty
和.sort_values
排序
您能解释一下使用 .sort_values 的目的吗?
【参考方案1】:
我的工作流程经常遇到这个问题。您可以做的一件事有点老套,但有效的是使用“[Subtotal]”而不是“Subtotal”。它周围的括号将为您正确排序。
这是我之前就类似问题提出过并得到回答的地方。
link 1
link 2
【讨论】:
这是非常有用的信息!感谢您的小费。我同意这有点“hacky”,这是我在这里发布问题的主要原因。以上是关于输出中带有“小计”值的Python Pandas Groupby?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 pandas-python 中带有空格的图像拆分列中的值