Pandas で複雑なデータ再構築タスクに直面した場合、Melt 関数が強力なツールとして現れます。データフレームを、複数の列を含むワイド形式から列数の少ないロング形式にシームレスに変換します。
実際のシナリオでは、再形成が必要なデータフレームを検討します。
df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Other', 'Year'])
Amy Bob Carl Chris Ben Other Year 0 2 4 7 8 1 3 2013 1 9 2 4 5 5 6 2014
これを変換するにはデータフレームをより構造化された形式に変換するには、メルト関数を使用できます:
m = pd.melt(df, id_vars=['Year'], var_name='Name')
この操作により次のものが生成されます。 dataframe:
Year Name value 0 2013 Amy 2 1 2014 Amy 9 2 2013 Bob 4 3 2014 Bob 2 4 2013 Carl 7 ...
ただし、目的の出力には「Group」という名前の追加列が含まれています。これを取得するには、辞書の形状を変更します:
d2 = {} for k, v in d.items(): for item in v: d2[item] = k
データフレームは、「Group」列で更新できるようになります:
m['Group'] = m['Name'].map(d2)
最後に、「Name」から「Other」を移動します。列を「グループ」列に追加します:
mask = m['Name'] == 'Other' m.loc[mask, 'Name'] = '' m.loc[mask, 'Group'] = 'Other'
結果のデータフレームは、目的のデータフレームと完全に一致します。出力:
Year Name value Group 0 2013 Amy 2 A 1 2014 Amy 9 A 2 2013 Bob 4 B 3 2014 Bob 2 B 4 2013 Carl 7 C ...
このように、Pandas のメルト関数は、データ サイエンティストにデータフレームを再形成するための多用途かつ効率的なメカニズムを提供し、さまざまな分析や視覚化の目的でデータを簡単に変換および再編成できるようにします。
以上がPandas の Melt 関数は、幅の広いデータフレームを追加の列を備えた必要な長い形式にどのように再形成できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。