ホームページ > バックエンド開発 > PHPチュートリアル > groupbyグループ内の最大値を持つ行を取得するpandasメソッド

groupbyグループ内の最大値を持つ行を取得するpandasメソッド

不言
リリース: 2023-03-24 14:34:02
オリジナル
4137 人が閲覧しました

以下は、groupby グループ内の最大値を持つ行を取得するための pandas メソッドです。これは、優れた参考値を持っているので、皆さんのお役に立てれば幸いです。一緒に見てみましょう

groupbyグループ内の最大値の行を取得するpandasメソッド

例えば、以下のDataFrameでMtでグループ化されている場合、Countが最大の行を取り出します

import pandas as pd
df = pd.DataFrame({'Sp':['a','b','c','d','e','f'], 'Mt':['s1', 's1', 's2','s2','s2','s3'], 'Value':[1,2,3,4,5,6], 'Count':[3,2,5,10,10,6]})

df
ログイン後にコピー



Sp
03 s1a1
12 s1b2
25s2c3
310s2 d4
4 10s2e 5
56s3f6

方法 1: 次の行をフィルターします。グループ内で最大のカウント うーん


313d4410 s2e5メソッド2: 変換を使用して元のデータフレームのインデックスを取得します。そして、必要な行をフィルターで除外します価値1


s10
s1a

s2

10
s2
df.groupby('Mt').apply(lambda t: t[t.Count==t.Count.max()])
ログイン後にコピー
print df.groupby(['Mt'])['Count'].agg(max)

idx=df.groupby(['Mt'])['Count'].transform(max)
print idx
idx1 = idx == df['Count']
print idx1

df[idx1]
ログイン後にコピー
CountMtSp
0 3 s1a

310

s2

d

4

4


10

s2 えf6 上記のメソッドの問題は、行 3 と行 4 の値がすべて最大値であるため、複数の行が返されることです。1 行だけが返された場合はどうなるでしょうか。 ? 方法 3: idmax (パンダの古いバージョンは argmax)Value03s1a1

5
5 6 s3
Mt
s1 3
s2 10
s3 6
Name: Count, dtype: int64
0 3
1 3
2 10
3 10
4 10
5 6
dtype: int64
0 True
1 False
2 False
3 True
4 True
5 True
dtype: bool
ログイン後にコピー
idx = df.groupby('Mt')['Count'].idxmax()
print idx
ログイン後にコピー
カウントMtSp

310s2

d

4

5

6


s3

f 61 310s2d4

レア
Sp
03s1a

5

6

s3

f6りーりーMtValue0s113s245s36

方法 4: まず並べ替えて、各グループから最初のものを取り出します

df.iloc[idx]
Mt
s1 0
s2 3
s3 5
Name: Count, dtype: int64
ログイン後にコピー

MtCountSp価値0110

s1 3 a
1 s2
d

4

2

s3

6


f

6 次に、最大値の行、たとえば中間値の行を抽出したくない場合はどうすればよいでしょうか。 考え方はまだ似ていますが、特定の書き込みメソッドでいくつかの変更が必要な場合があります。たとえば、メソッド 1 と 2 は max アルゴリズムを変更する必要があり、メソッド 3 はインデックスを返すメソッドを実装する必要があります。 とにかく、groupby の後、各グループはデータフレームになります。 関連する推奨事項: pandas+dataframe は行と列の選択とスライス操作を実装しますPython データ処理ライブラリ pandas 入門

以上がgroupbyグループ内の最大値を持つ行を取得するpandasメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート