#仓库产品库存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 15:51:42 浏览: 112
可以尝试使用pivot_table函数来实现数据重塑,然后再使用fillna函数来将NaN值填充为0。
代码示例:
```
import pandas as pd
# 读取数据
1 = 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)
# 使用fillna函数将NaN值填充为0
table = table.fillna(0)
# 将结果转换为列表输出
results = table.values.tolist()
print(results)
```
这样就可以得到每个仓库中产品的库存数据,并且缺失的数据都被补充为0了。
相关问题
#仓库产品库存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] 就是第一个仓库中每个产品的可用库存数量列表。
阅读全文