我有两个dataframes在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 100
store_b 100 25 200
store_c 200 100 200
store_d 300 300 200
我的任务是使用字典中的值来规范化各个商店中各自食物的库存,因为不同水果的库存总数是不同的。我想到匹配字典名称,检索键并编写一个函数来循环每一列,以将每个商店中的计数除以计数总数。(字典中的值),如果列名与键匹配。将一些东西变成这样:
apple orange banana
store_a 0.06 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])
但是这个功能似乎不能正常工作,我不知道这个功能是否足够优雅?我可以有一些建议,如何改善它?
当我硬编码第一个df的字典时,是否有另一种方法来构造一个函数,将它们转换为字典?
2条答案
按热度按时间tjrkku2a1#
您可以用途:
输出:
0s7z1bwu2#
我们去吧