ホームページ > バックエンド開発 > Python チュートリアル > Pandas で階層列インデックスをフラット化する方法

Pandas で階層列インデックスをフラット化する方法

Mary-Kate Olsen
リリース: 2024-12-07 17:44:13
オリジナル
703 人が閲覧しました

How to Flatten a Hierarchical Column Index in Pandas?

階層インデックス列のフラット化

Pandas DataFrame の列の階層インデックスをフラット化するには、次の手順に従います。

1.列を最上位に設定:

df.columns = df.columns.get_level_values(0)
ログイン後にコピー

これにより、階層インデックスの最上位が新しい列名として設定されます。

2. MultiIndex を単一のインデックスに結合する (オプション):

MultiIndex をさらに結合して単一のインデックスにしたい場合は、次の手順を実行できます:

df.columns = [' '.join(col).strip() for col in df.columns.values]
ログイン後にコピー

これにより、区切り文字としてスペースを使用し、先頭または末尾を削除した列名

例:

列に階層インデックスを持つ次の DataFrame を考えます:

df = pd.DataFrame({'s_PC': [1, 0, 1], 's_CL': [0, 0, 10]},
                    index = pd.MultiIndex.from_tuples([
                        ('day', 1),('day', 2),('day', 3)
                    ]), columns = pd.MultiIndex.from_tuples([
                        ('USAF', ''),('WBAN', ''),('year', 1993)
                    ]))
ログイン後にコピー

フラット化の適用操作:

# Set columns to top level
df.columns = df.columns.get_level_values(0)

# Join MultiIndex into single index
df.columns = [' '.join(col).strip() for col in df.columns.values]
ログイン後にコピー

出力:

   USAF  WBAN  year  day  s_PC  s_CL
0   702   265  1993   1     1     0
1   702   265  1993   2     0     0
2   702   265  1993   3     1    10
ログイン後にコピー

階層インデックスは単一のインデックスにフラット化されました。

以上がPandas で階層列インデックスをフラット化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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