#仓库产品库存dc_inventory data1 = pd.read_csv('D:\运筹优化\杉数科技比赛\data\dc_inventory.csv') grouped = df.groupby(['dc_id', 'sku_id']).sum() results = [] for dc, group in grouped.groupby('dc_id'): dc_results = [] for index, row in group.iterrows(): dc_results.append(row['available_inv']) results.append(dc_results) print(results)中识别每个仓库中产品的库存,给没有库存数据的产品数组中填零
时间: 2023-11-22 16:51:49 浏览: 141
可以尝试使用pivot_table()函数将数据透视成以dc_id和sku_id为行列的形式,然后用fillna()函数填充缺失值。示例代码如下:
```
import pandas as pd
# 读取数据
data1 = pd.read_csv('D:\运筹优化\杉数科技比赛\data\dc_inventory.csv')
# 使用pivot_table()函数透视数据
table = pd.pivot_table(data1, values='available_inv', index=['dc_id'], columns=['sku_id'], aggfunc=sum)
# 填充缺失值
table.fillna(0, inplace=True)
# 转换成list
results = table.values.tolist()
print(results)
```
注意:如果数据中存在非数字的字符或者空字符,可能会导致数据类型错误,需要先进行数据清洗。另外,代码中使用了inplace=True参数,表示直接修改原始数据,如果不需要修改原始数据,可以去掉该参数。
相关问题
#仓库产品库存dc_inventory data1 = pd.read_csv('D:\运筹优化\杉数科技比赛\data\dc_inventory.csv') grouped = df.groupby(['dc_id', 'sku_id']).sum() results = [] for dc, group in grouped.groupby('dc_id'): dc_results = [] for index, row in group.iterrows(): dc_results.append(row['available_inv']) results.append(dc_results) print(results)
这段代码的作用是读取一个名为 "dc_inventory.csv" 的文件,然后按照仓库和产品分组,计算每个组的可用库存量,并将结果存储在一个嵌套列表中。具体来说,它首先使用 Pandas 库的 read_csv 函数来读取 CSV 文件,并将其存储在名为 data1 的变量中。然后,它使用 groupby 函数将数据按照 'dc_id' 和 'sku_id' 两个列进行分组,并使用 sum 函数计算每个组的可用库存量。接着,它创建了一个名为 results 的空列表,并迭代每个仓库的分组,将每个仓库内的产品的可用库存量存储在名为 dc_results 的列表中,并将其添加到结果列表中。最后,它打印出结果列表。
import pandas as pd # 读取数据 data1 = pd.read_csv('D:\运筹优化\杉数科技比赛\data\dc_inventory.csv') # 使用pivot_table函数透视数据,填充缺失值为0 pivoted = data1.pivot_table(values='available_inv', index=['dc_id'], columns=['sku_id'], fill_value=0) # 将透视后的数据转化为列表 results = pivoted.values.tolist() print(results)中每个仓库的产品数量是多少
在你提供的代码中,使用了 pandas 库的 pivot_table 函数将原始数据透视成了以仓库ID(dc_id)为行索引,产品ID(sku_id)为列索引,可用库存数量(available_inv)为值的二维表格。而 results 变量则将透视后的数据转换为了一个列表。
因此,results 列表中每个元素都是一个仓库的产品可用库存数量列表,列表的长度就是产品的数量。你可以通过 results 列表中的每个子列表来获取每个仓库的产品数量。例如,results[0] 就是第一个仓库中每个产品的可用库存数量列表。
阅读全文