ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame を効果的にピボットするにはどうすればよいですか?

Pandas DataFrame を効果的にピボットするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-27 15:43:11
オリジナル
291 人が閲覧しました

How Can I Effectively Pivot a Pandas DataFrame?

データフレームをピボットするにはどうすればよいですか?

ピボットとは、カテゴリを表す列と値を表す行を含むデータフレームを取得し、カテゴリが一致するように向きを変える変換です。行に値があり、列に値があり、インデックスは元の行に設定されます。

基本構文:

df.pivot(index=<row_labels>, columns=<col_labels>, values=<value_cols>)
ログイン後にコピー

例:

  • 単一のピボット列:
df.pivot(index='row', columns='col', values='val')
ログイン後にコピー
  • 複数の列でピボット:
df.pivot(index=['row', 'item'], columns='col', values='val')
ログイン後にコピー
  • 複数の値でピボット:
df.pivot(index='row', columns='col', values=['val0', 'val1'])
ログイン後にコピー
  • カスタム集計を使用したピボット関数:
df.pivot(index='row', columns='col', values='val', aggfunc='mean')
ログイン後にコピー
  • 重複キーの処理:

デフォルトでは、行ラベルまたは列ラベルに重複キーがある場合、エラーが発生します。 。または、

df.pivot_table(index='row', columns='col', values='val', fill_value=0)
ログイン後にコピー
  • ピボット用のその他のメソッド:
  • groupby unstack:

    df.groupby('row', 'col')['val'].mean().unstack(fill_value=0)
    ログイン後にコピー
  • pd.DataFrame .set_index: set_index を使用して行軸と列軸を設定し、アンスタックしてpivot.
  • pd.crosstab: クロス集計またはピボット テーブルの作成用に特別に設計されています。

高度なピボット手法:

  • クロス集計 (頻度counting):
pd.crosstab(index=df['row'], columns=df['col'], values=df['val'], aggfunc='count')
ログイン後にコピー
  • 複数の集計関数:
df.pivot_table(index='row', columns='col', values='val', aggfunc=['mean', 'sum'])
ログイン後にコピー
  • 複数の列による細分化:
df.pivot_table(index='row', columns=['item', 'col'], values='val', fill_value=0, aggfunc='mean')
ログイン後にコピー

以上がPandas DataFrame を効果的にピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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