我下面有一个名为df_test的数组,它显示每个地区每个产品的得分。我想创建一个名为“最高得分产品”的列,它显示每个地区得分最高的相应产品名称。
我使用了max()函数来获得最高的产品分数,但是所需的输出应该显示产品名称,而不是“highest score product”列中的分数。
我尝试了df_test.idxmax(axis=“columns”),但是我得到了错误,可能是由于空值。但是,这些空值不能用0填充NA,因为所有数据值都必须保持原样(包括np.nan和None),以便在下游过程中进行特殊处理。
什么是实现这一目标的好方法?任何建议都将受到欢迎。
import pandas as pd
import numpy as np
region= 'region'
product1 = 'product1'
product2 = 'product2'
product3 = 'product3'
product4 = 'product4'
product5 = 'product5'
list_reg = ['region1', 'region2','region3','region4','region5','region6']
list_score1 = [100, 250, 350, 555,999999, 200000]
list_score2 = [41, 111, 12.14,16.18,np.nan,200003]
list_score3 = [7.04, 2.09, 11.14,2000320,22.17,np.nan]
list_score4 = [236,249,400,0.56,359,122]
list_score5 = [None, 1.33, 2.54, 1, 0.9, 3.2]
df_test = pd.DataFrame({region: list_reg,
product1: list_score1,
product2: list_score2,
product3: list_score3,
product4: list_score4,
product5: list_score5})
col = [product1,product2,product3,product4,product5]
df_test['highest score product'] = df_test[col].max(axis=1)
df_test
字符串
输出如下-x1c 0d1x
所需输出如下-
1条答案
按热度按时间rt4zxlrg1#
试试看:
字符串
打印:
型