#仓库产品库存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 17:51:42 浏览: 88
可以尝试使用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)中识别每个仓库中产品的库存,给没有库存数据的产品数组中填零
可以尝试使用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参数,表示直接修改原始数据,如果不需要修改原始数据,可以去掉该参数。
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] 就是第一个仓库中每个产品的可用库存数量列表。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)