gpt4 book ai didi

python - 查找列的最大值,并在另一列中返回值

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:28 25 4
gpt4 key购买 nike

我有一个这样的数据框:

   Allotment  NDII Percent  NDII Value  NDVI Percent  NDVI Value
0 Arnston 0.0550 -0.199448 NaN NaN
1 Arnston 0.0000 -0.198036 NaN NaN
2 Arnston 0.0000 -0.196623 NaN NaN
3 Arnston 0.0000 -0.195211 NaN NaN
4 Arnston 0.0000 -0.193799 NaN NaN
5 Arnston 0.0275 -0.192386 NaN NaN
6 Arnston 0.0550 -0.190974 NaN NaN
7 Arnston 0.0000 -0.189561 NaN NaN
8 Arnston 0.0275 -0.188149 NaN NaN
9 Arnston 0.1926 -0.186737 NaN NaN
10 Anex 0.0275 -0.185324 NaN NaN
11 Anex 0.0275 -0.183912 NaN NaN
12 Anex 0.1376 -0.182499 NaN NaN
13 Anex 0.0000 -0.181087 NaN NaN
14 Anex 0.1100 -0.179675 NaN NaN
15 Anex 0.0550 -0.178262 NaN NaN
16 Anex 0.0000 -0.176850 NaN NaN
17 Anex 0.0275 -0.175437 NaN NaN
18 Anex 0.1100 -0.174025 NaN NaN
0 Arnston NaN NaN 5.0338 0.000000
1 Arnston NaN NaN 1.0000 0.002235
2 Arnston NaN NaN 0.0200 0.004469
3 Arnston NaN NaN 0.1000 0.006704
4 Arnston NaN NaN 2.0000 0.008939
5 Arnston NaN NaN 1.0000 0.011173
6 Arnston NaN NaN 2.0000 0.013408
7 Arnston NaN NaN 0.0000 0.015643
8 Arnston NaN NaN 0.0000 0.017877
9 Arnston NaN NaN 0.0000 0.020112
10 Arnston NaN NaN 0.0000 0.022346
11 Anex NaN NaN 1.0000 0.024581
12 Anex NaN NaN 3.0000 0.026816
13 Anex NaN NaN 5.0000 0.029050
14 Anex NaN NaN 0.0000 0.031285
15 Anex NaN NaN 0.0000 0.033520
16 Anex NaN NaN 0.0000 0.035754
17 Anex NaN NaN 0.0000 0.037989
18 Anex NaN NaN 0.0000 0.040224
19 Anex NaN NaN 0.0000 0.042458
20 Anex NaN NaN 0.0000 0.044693
21 Anex NaN NaN 0.0000 0.046928
22 Anex NaN NaN 0.0000 0.049162
23 Anex NaN NaN 0.0000 0.051397
24 Anex NaN NaN 0.0000 0.053631
25 Anex NaN NaN 0.0000 0.055866
26 Anex NaN NaN 0.0000 0.058101

我想找到最大值 NDII Value及其相关的 NDII Percent对于每个 Allotment和最大值 NDVI Value及其相关的 NDVI Percent对于每个 Allotment .所以我知道我需要在 Allotment 上使用 groupby首先,但这就是我陷入困境的地方。

我想要的输出是:

Allotment    NDII Percent NDII Value   NDVI Percent   NDVI Value
Arnston 0.1926 -0.186737 0.0000 0.022346
Anex 0.1100 -0.174025 0.0000 0.058101

最佳答案

也许有更直接、更优雅的方法来做到这一点,但是,让 df 成为您的原始数据框:

df1 = df.iloc[df.groupby(['Allotment'])['NDII Value'].apply(lambda x: x.idxmax())]
df2 = df.iloc[df.groupby(['Allotment'])['NDVI Value'].apply(lambda x: x.idxmax())]

然后我只选择我需要的列:

d1 = df1[['Allotment','NDII Value','NDII Percent']]
d2 = df2[['Allotment','NDVI Value','NDVI Percent']]

并合并:

d = d1.merge(d2,how='outer')

返回:

  Allotment  NDII Value  NDII Percent  NDVI Value  NDVI Percent
0 Anex -0.174025 0.1100 0.058101 0
1 Arnston -0.186737 0.1926 0.022346 0

希望对您有所帮助。

关于python - 查找列的最大值,并在另一列中返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33086270/

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