gpt4 book ai didi

python-3.x - 根据其他列的最大值选择列中的值

转载 作者:行者123 更新时间:2023-12-04 10:38:52 24 4
gpt4 key购买 nike

我正在选择 Pandas DataFrame 中的值。
我想根据列的比率('One_R'、'Two_R'、'Three_R')选择列'One_T'、'Two_T'、'Three_T'(这意味着总计数)中的值。

比较值由列 ('One_R','Two_R','Three_R') 完成,选择值将由列 ('One_T','Two_T','Three_T') 完成。

我想在列('One_R'、'Two_R'、'Three_R')中找到最高值,并将列 'One_T'、'Two_T'、'Three_T' 中的值放在新列 'Highest' 中。

例如,第一行在 One_R 中的值高于 Two_R 和 Three_R。
然后,One_T 中的值将填充名为 Highest 的列。

初始数据框是测试 下面的代码和所需的结果是 结果 在下面的代码中。

test = pd.DataFrame([[150,30,140,20,120,19],[170,31,130,30,180,22],[230,45,100,50,140,40],
[140,28,80,10,60,10],[100,25,80,27,50,23]], index=['2019-01-01','2019-02-01','2019-03-01','2019-04-01','2019-05-01'],
columns=['One_T','One_R','Two_T','Two_R','Three_T','Three_R'])
 One_T  One_R   Two_T   Two_R   Three_T Three_R
2019-01-01 150 30 140 20 120 19
2019-02-01 170 31 130 30 180 22
2019-03-01 230 45 100 50 140 40
2019-04-01 140 28 80 10 60 10
2019-05-01 100 25 80 27 50 23
result = pd.DataFrame([[150,30,140,20,120,19,150],[170,31,130,30,180,22,170],[230,45,100,50,140,40,100],
[140,28,80,10,60,10,140],[100,25,80,27,50,23,80]], index=['2019-01-01','2019-02-01','2019-03-01','2019-04-01','2019-05-01'],
columns=['One_T','One_R','Two_T','Two_R','Three_T','Three_R','Highest'])
One_T   One_R   Two_T   Two_R   Three_T Three_R Highest
2019-01-01 150 30 140 20 120 19 150
2019-02-01 170 31 130 30 180 22 170
2019-03-01 230 45 100 50 140 40 100
2019-04-01 140 28 80 10 60 10 140
2019-05-01 100 25 80 27 50 23 80

有没有办法做到这一点?

感谢您的时间和考虑。

最佳答案

您可以使用 df.filter 解决此问题选择带有 _R 的列后缀,然后 idxmax .然后替换_R_T并使用 df.lookup :

s = test.filter(like='_R').idxmax(1).str.replace('_R','_T')
test['Highest'] = test.lookup(s.index,s)
print(test)
            One_T  One_R  Two_T  Two_R  Three_T  Three_R  Highest
2019-01-01 150 30 140 20 120 19 150
2019-02-01 170 31 130 30 180 22 170
2019-03-01 230 45 100 50 140 40 100
2019-04-01 140 28 80 10 60 10 140
2019-05-01 100 25 80 27 50 23 80

关于python-3.x - 根据其他列的最大值选择列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60027216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com