階層インデックス列のフラット化
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 サイトの他の関連記事を参照してください。