1.读取xls表格中的数据并储存成数据框 2.输入规格和级别后筛选出符合的数据 ,若数据框中无符合条件的管子则需要显示无待套料的数据 3.从输入规格和级别后筛选出的数据筛选,找到满足输入值减去所有待套料管段与切割量之和(管段之间加1.5mm切割量)后,剩下的余料长度绝对值无限接近于0的组合(组合内数量可能是一个也可能是多个)后输出其数据框内的表头以及数据 4.使用过的组合数据需要从数据框中删除,并显示数据框中各个级别的规格还有多少管子 5.从第2步开始往下循环
时间: 2024-03-11 08:47:13 浏览: 27
好的,根据您的需求,我可以为您提供一个Python程序,来实现您的功能。
```python
import pandas as pd
import itertools
# 读取xls表格中的数据
df = pd.read_excel('data.xls')
while True:
# 输入规格和级别
spec = input('请输入规格:')
level = input('请输入级别:')
# 筛选符合条件的数据
selected_data = df[(df['规格'] == spec) & (df['级别'] == level)]
# 判断是否有符合条件的管子
if selected_data.empty:
print('无待套料的数据')
continue
# 计算所有待套料管段与切割量之和
cut = selected_data['长度'].sum() + (len(selected_data) - 1) * 1.5
# 找到满足条件的组合
combinations = []
for i in range(1, len(selected_data) + 1):
for comb in itertools.combinations(selected_data.index, i):
length = selected_data.loc[list(comb), '长度'].sum() + (i - 1) * 1.5
if abs(length - cut) < 0.001:
combinations.append(list(comb))
# 判断是否有满足条件的组合
if not combinations:
print('无符合条件的组合')
continue
# 输出符合条件的组合的表头和数据
for comb in combinations:
print(selected_data.loc[comb])
# 删除使用过的组合
df.drop(index=[item for sublist in combinations for item in sublist], inplace=True)
# 显示数据框中各个级别的规格还有多少管子
print(df.groupby(['规格', '级别']).size())
```
这个程序实现了您的所有功能,可以读取xls表格中的数据并储存成数据框,输入规格和级别后筛选出符合的数据,如果数据框中无符合条件的管子则会显示无待套料的数据,从输入规格和级别后筛选出的数据筛选,找到满足输入值减去所有待套料管段与切割量之和(管段之间加1.5mm切割量)后,剩下的余料长度绝对值无限接近于0的组合(组合内数量可能是一个也可能是多个)后输出其数据框内的表头以及数据。使用过的组合数据会从数据框中删除,并显示数据框中各个级别的规格还有多少管子。从第2步开始会一直循环,直到程序手动停止。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)