[解決済み] groupby時に他のカラムを保持する
2023-05-28 06:19:50
質問
私は
groupby
を使って、特定のカラムの最小値を持たないすべての行を削除しています。このようなものです。
df1 = df.groupby("item", as_index=False)["diff"].min()
しかし、この2つ以上のカラムを用意すると、他のカラム(例えば
otherstuff
など)は削除されてしまいます。これらのカラムを
groupby
を使用してそれらの列を維持できますか、それとも行を削除する別の方法を見つけなければなりませんか?
私のデータは次のようなものです。
item diff otherstuff
0 1 2 1
1 1 1 2
2 1 3 7
3 2 -1 0
4 2 1 3
5 2 4 9
6 2 -6 2
7 3 0 0
8 3 2 9
のように終わるはずです。
item diff otherstuff
0 1 1 2
1 2 -6 2
2 3 0 0
となっていますが、出てくるのは
item diff
0 1 1
1 2 -6
2 3 0
ドキュメントに目を通したのですが、何も見つかりません。試してみました。
df1 = df.groupby(["item", "otherstuff"], as_index=false)["diff"].min()
df1 = df.groupby("item", as_index=false)["diff"].min()["otherstuff"]
df1 = df.groupby("item", as_index=false)["otherstuff", "diff"].min()
しかし、これらのどれも動作しません(最後の1つで、この構文はグループが作成された後に集約するためのものであることに気づきました)。
どのように解決するのですか?
方法その1: 使用する
idxmin()
を使って
インデックス
の要素のうち、最小の
diff
の要素のインデックスを指定し、それらを選択する。
>>> df.loc[df.groupby("item")["diff"].idxmin()]
item diff otherstuff
1 1 1 2
6 2 -6 2
7 3 0 0
[3 rows x 3 columns]
方法2: 並べ替えは
diff
でソートし、各要素の最初の
item
グループの最初の要素を取ります。
>>> df.sort_values("diff").groupby("item", as_index=False).first()
item diff otherstuff
0 1 1 2
1 2 -6 2
2 3 0 0
[3 rows x 3 columns]
行の内容が同じでも、結果のインデックスが異なることに注意してください。
関連
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] 空のPandas DataFrameを作成し、それを埋める?
-
[解決済み] PandasのGroupByの出力をSeriesからDataFrameに変換する
-
[解決済み] データフレームをピボットするにはどうしたらいいですか?
-
[解決済み] groupbyでグループ内の最大値を持つ行を取得する。
-
[解決済み】複数のgroupbyカラムに複数の関数を適用する
-
[解決済み】Pandas DataFrame 2列のGroupbyとカウントの取得
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] Pandasはgroupbyで合計を出すが、特定の列を除外する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複