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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-07 17:44:13739ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。