You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas与字典匹配:库存规范化、对数转换及字典构建优化求助

解决方案:自动构建总库存字典 + 规范化与log10转换优化

一、自动构建总库存字典

无需硬编码,直接从第一个CSV文件提取Total stock行数据生成字典:

import pandas as pd

# 读取总库存CSV,将第一列设为索引
df_total = pd.read_csv('total_stock.csv', index_col=0)

# 提取Total stock行,清洗列名(转小写、移除后缀)后转字典
fruit_total = df_total.loc['Total stock'].rename(
    lambda col_name: col_name.lower().replace('.count.out', '')
).to_dict()

执行后fruit_total会自动生成目标字典:{'apple': 1000, 'orange': 500, 'banana': 1000}。

二、简洁实现规范化与log10转换

利用Pandas广播特性和NumPy向量化操作,一行代码完成需求:

import numpy as np

# 读取各商店库存CSV,将第一列设为索引
df_stores = pd.read_csv('store_stocks.csv', index_col=0)

# 1. 按列匹配总库存做除法规范化;2. 对结果执行log10转换
normalized_log_result = np.log10(df_stores.div(fruit_total, axis=1))

关键说明:

  • df_stores.div(fruit_total, axis=1):指定axis=1让Pandas按列名匹配字典键,自动完成列对应值的除法,无需手动循环。
  • np.log10():直接对整个DataFrame执行向量化运算,效率远高于逐元素处理。
  • 若担心库存为0导致log报错,可添加微小偏移避免异常:np.log10(df_stores.div(fruit_total, axis=1) + 1e-6)

内容的提问来源于stack exchange,提问作者newstudenttoprogramming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:00:12