[解決済み】pandas GroupBy.agg()を使って同じ列を複数回集約する。)
2022-04-15 08:29:25
質問
2つの異なる集約関数を適用するためのpandas組み込みの方法はありますか?
f1, f2
を同じ列
df["returns"]
を呼び出すことなく
agg()
何度も?
データフレームの例です。
import pandas as pd
import datetime as dt
import numpy as np
pd.np.random.seed(0)
df = pd.DataFrame({
"date" : [dt.date(2012, x, 1) for x in range(1, 11)],
"returns" : 0.05 * np.random.randn(10),
"dummy" : np.repeat(1, 10)
})
構文的には間違っているが、直感的には正しい方法は、次のようになる。
# Assume `f1` and `f2` are defined for aggregating.
df.groupby("dummy").agg({"returns": f1, "returns": f2})
明らかに、Pythonはキーの重複を許しません。への入力を表現する他の方法はないのでしょうか?
agg()
? おそらくタプルのリスト
[(column, function)]
の方が、同じ列に複数の関数を適用できるため、よりうまくいくのではないでしょうか?しかし
agg()
は、辞書しか受け付けないようです。
補助関数を定義して、その中の両方の関数を適用させる以外に、回避策はありますか?(いずれにせよ、これは集計でどのように機能するでしょうか?)
どのように解決するのですか?
関数をリストで渡すだけです。
In [20]: df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
Out[20]:
mean sum
dummy
1 0.036901 0.369012
または辞書として使用することができます。
In [21]: df.groupby('dummy').agg({'returns':
{'Mean': np.mean, 'Sum': np.sum}})
Out[21]:
returns
Mean Sum
dummy
1 0.036901 0.369012
deprecation warining を回避するため。
df.groupby('dummy').agg(Mean=('returns', np.mean),
Sum=('returns', np.sum))
関連
-
pythonを使ったオフィス自動化コード例
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] Pandas DataFrameの特定の列の値がNaNである行を削除する方法
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] pandas GroupByを使ってグループごとの統計情報(カウント、平均値など)を取得する?
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】pandasでカラムの種類を変更する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] Pandasの集約関数で返されたカラムに名前を付ける?[重複)。