Pandas 和 Dictionary - 将 df 列名称与字典键匹配,然后检索该值以对该列的值进行计算

问题描述 投票:0回答:0

我在 2 个单独的 .csv 文件中有两个数据框 第一个是:

             Apple.count.out Orange.count.out Banana.count.out
Total stock   1000              500            1000
average_price   2                2              0.5

我把第一个写进了字典

fruit={(apple:1000),(orange:500),(banana:1000)}

df2 由包含单个水果库存的 store_name 列表组成,如下所示:

          apple    orange   banana
store_a    60       25       1oo
store_b    100      25       200
store_c    200      100      200
store_d    300      300     200        

我的任务是使用字典中的值来标准化各个商店中各个食品的库存,因为不同水果的库存总数首先是不同的。我想匹配字典名称检索键并编写一个函数来循环每一列,如果列名称与键匹配,则将每个商店中的计数除以计数总数(字典中的值)。把东西变成这样:

          apple    orange      banana
store_a    0.6       0.05        0.1
store_b    0.10      0.05        0.2
store_c    0.20      0.20        0.2
store_d    0.30      0.60        0.2       

我需要对每个值进行 log10 转换。我尝试使用以下功能:

import numpy as np
import pandas as pd

fruits = ['apple','orange','banana']
df2[fruits] = df2[fruits].apply(lambda x: (x/t) if t = df2.columns.values for t,u in fruit.items())
df2[fruits] = np.log10(df2[fruits])

但是这个功能似乎不能正常使用,我不确定这个功能是否足够优雅?我可以就如何改进它提出一些建议吗? 非常感谢您。

pandas dataframe dictionary logging normalization
© www.soinside.com 2019 - 2024. All rights reserved.