LoginSignup
0
0

More than 3 years have passed since last update.

【python】pandas で○○が最大となる△△を取り出す

Last updated at Posted at 2020-07-10

あるい指標について最大であるときの別の指標の値を取り出す、例えば、「信号強度(intensity)が最大になる角度(elevation)」をDataFrame から取り出すことを考えます。

import pandas as pd
df = pd.DataFrame({'elevation': [45.0, 60.0, 75.0, 90.0], \
    'intensity': [10.0, 11.1, 12.3, 10.0]})
print(df["intensity"].loc[df.idxmax()]["elevation"])

結果は 75.0 とでるはずです。

  • idxmax(), idxmin() で最大、最小になる各列のindex を取得できる
  • このプログラムでは、DataFrame の index が文字列でも動きます。
df = pd.DataFrame({'elevation': [45.0, 60.0, 75.0, 90.0],\
    'intensity': [10.0, 11.1, 12.3, 10.0]},\
    index=['a', 'b', 'c', 'd'])

何度も同じことをググっているのでメモしました。(2020/07/10)

その後

  • idxmax()を使うときのDataFrame の Seriesにstr があるとエラーになります。上記のコードでもともとは
print(df.loc[df.idxmax()["intensity"]]["elevation"])

としていたところをprint(df.loc[df["intensity"].idxmax()]["elevation"])に修正しました。これだとDataFrame のうち、float32である"intensity"の列だけで最大を求めるので、他の列にstr や bool などがあっても大丈夫です。 (2020/07/18)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0