有一个Excel表格,第一个sheet表示订货量,第二个sheet表示供货量。在每个sheet中,每一列代表每一周的供货量,每一行代表每一家公司的供货量。如果第二个表格中的供货量达到对应订货量的0.8-1.2倍,则计为1,然后统计每家公司1的个数。需要Python代码。
时间: 2024-04-18 19:31:17 浏览: 112
以下是一个使用Python统计每家公司供货量达到订货量的0.8-1.2倍的示例代码:
```python
import pandas as pd
# 读取Excel表格数据
order_data = pd.read_excel("order_data.xlsx", sheet_name="Order Quantity", header=None)
supply_data = pd.read_excel("supply_data.xlsx", sheet_name="Supply Quantity", header=None)
# 定义判断供货量是否满足要求的函数
def is_supply_satisfied(order, supply):
if supply >= 0.8 * order and supply <= 1.2 * order:
return 1
else:
return 0
# 统计每家公司供货量满足要求的个数
company_counts = []
for i in range(order_data.shape[0]):
order_row = order_data.iloc[i, :]
supply_row = supply_data.iloc[i, :]
count = sum([is_supply_satisfied(order, supply) for order, supply in zip(order_row, supply_row)])
company_counts.append(count)
# 创建结果数据表格
result_data = pd.DataFrame({'Company': range(1, order_data.shape[0]+1), 'Count': company_counts})
# 将结果保存为Excel表格
result_data.to_excel("satisfied_counts.xlsx", index=False)
```
请确保将Excel文件命名为"order_data.xlsx"和"supply_data.xlsx",并且包含两个sheet分别为"Order Quantity"和"Supply Quantity"。代码将逐行比较每个公司的订货量和供货量,统计满足要求的个数,并将结果保存为新的Excel表格"satisfied_counts.xlsx",包含公司编号和满足要求的个数。你可以根据需要调整代码,以适应不同的数据结构和需求。
阅读全文