[解決済み] pandasの.groupbyと反対の「ungroup by」操作はありますか?
2022-02-02 22:15:57
質問
pandasのdataframeを取り出したとすると...。
name age family
0 john 1 1
1 jason 36 1
2 jane 32 1
3 jack 26 2
4 james 30 2
次に
groupby()
...
group_df = df.groupby('family')
group_df = group_df.aggregate({'name': name_join, 'age': pd.np.mean})
次に、何らかの集約/集計処理を行います(この例では、私の関数
name_join
は名前を集約する)。
def name_join(list_names, concat='-'):
return concat.join(list_names)
グループ化された要約出力はこのようになります。
age name
family
1 23 john-jason-jane
2 28 jack-james
質問です。
集計されたテーブルから以下のように素早く、効率的に取得する方法はありますか?
name age family
0 john 23 1
1 jason 23 1
2 jane 23 1
3 jack 28 2
4 james 28 2
(注)
age
列の値は単なる例であり、この特定の例では平均化した後に失う情報は気にしない)
私が考えた方法は、あまり効率的ではなさそうです。
- 空のデータフレームを作成する
-
の各行から
group_df
のように、名前を区切ります。 - 開始行の名前と同じ数の行を持つデータフレームを返します。
- 空のデータフレームに出力を追加します。
解決方法は?
大雑把に言うと
.reset_index()
の反対と考えるのは、あまり有益ではないかもしれません。
groupby()
.
文字列をバラバラに分割し、それぞれの断片と「家族」の関連付けを維持しているのです。 私のこの古い答え がその役割を担っています。
ただ、最初にインデックスカラムとして'family'を設定し、上記のリンクを参照して
reset_index()
を最後に追加すれば、希望する結果が得られます。
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] pandas GroupByを使ってグループごとの統計情報(カウント、平均値など)を取得する?
-
[解決済み] PandasのGroupByの出力をSeriesからDataFrameに変換する
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
最新
-
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関数の高度な応用を解説
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python入門 openを使ったファイルの読み書きの方法
-
Python 入出力と高次代入の基礎知識
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] pandas: 列の中のテキストを複数の行に分割するには?