【发布时间】:2025-11-22 18:30:01
【问题描述】:
我有一个包含多个每周订单文件的合并 excel 文件
import pandas as pd
Jan1 = pd.read_excel(r"~\Documents\1to6janReport1.xlsx")
Jan2 = pd.read_excel(r"~\Documents\7to12janReport2.xlsx")
Jan3 = pd.read_excel(r"~\Documents\13to19janReport3.xlsx")
Jan4 = pd.read_excel(r"~\Documents\20to26janReport4.xlsx")
all_df_list = [Jan1, Jan2, Jan3,Jan4]
appended_df = pd.concat(all_df_list)
appended_df.to_excel("SallesDB1.xlsx", index=False)
文件结构是这样的
我想要的是返回一个新的数据框来计算每个买家的订单。
如果产品等于产品和买方不为空且等于买方仅返回摘要包含“产品”和“结束”的行。
我知道这很复杂,但我需要获取每个买家订单的百分比(计算订单而不是数量)。问题在于,每天都会出现相同的产品,其中包含请求可能需要一天或几天才能结束的日期的摘要,这会产生不准确的百分比。 此外,在买家订单结束后,新买家可以订购相同的产品,或者同一买家将开始新订单,并且知道这一点的唯一方法是使用摘要(开始,结束)作为关键词。
最终的结果应该是这样的
Product date quantity summary buyer
NO6 2/1/2019 6 Operation product request ended KLW
ZS5 3/1/2019 5 The product request ended WHM
更新
Product date quantity summary buyer
*day1*
AX1 2/1/2019 15 The product request started today HTN
X5L 2/1/2019 0 No operation update null
NO6 2/1/2019 6 Operation product request ended KLW
ZS5 2/1/2019 5 The product request started WHM
*day2*
AX1 3/1/2019 15 Product request still pending HTN
X5L 3/1/2019 5 A new product request started LKJ
NO6 3/1/2019 0 No update for operation null
ZS5 3/1/2019 5 The product request ended WHM
*day3*
AX1 4/1/2019 15 Product request ended HTN
X5L 4/1/2019 5 The product request under-process LKJ
NO6 4/1/2019 0 No update for operation null
ZS5 4/1/2019 3 New request for the product started KLW
所以数据表(在 excel 中)有 200 多个产品。这些产品将每天重复。每个产品的摘要每天都不同。
但我真正需要的是买家请求编号(计数)。
在产品 AX1 中,例如请求在 2 日开始并在 4 日结束。因为我需要买家的数量,所以我只需要其中 Product == Product 和买家 == 买家的一行,并且 summary 包含两个字符串(产品和结束)。
这是
Product date quantity summary buyer
AX1 4/1/2019 15 Product request ended HTN
我再次知道它非常复杂。
【问题讨论】:
-
如果可以的话,您可以使用 Excel 公式来执行此操作。您的上述数据会显示什么结果?
-
最终结果应该有每个操作结束的行,我不知道 excel 中的公式可以执行该操作。请注意,该文件有 200 多个产品,并且每个月的每一天都会重复这些产品
-
如果你有
O365,你可以使用FILTER函数。或者,如果你只是想要计数,你可以使用COUNTIFS -
好吧,我知道如果你想要一个特定的产品和一个特定的公司,我想要的是一个列表,其中包含应用于所有产品的所有过滤器