ホームページ > バックエンド開発 > Python チュートリアル > Pandas Melt とディクショナリ操作は、どのようにして広いデータフレームを整理された形式に再形成できるのでしょうか?

Pandas Melt とディクショナリ操作は、どのようにして広いデータフレームを整理された形式に再形成できるのでしょうか?

Patricia Arquette
リリース: 2024-11-22 00:49:12
オリジナル
894 人が閲覧しました

How Can Pandas Melt and Dictionary Manipulation Reshape a Wide Dataframe into a Tidy Format?

Pandas Melt 関数: データフレームを簡単に再形成する

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'])

d = {'A': ['Amy'], 'B': ['Bob', 'Ben'], 'C': ['Carl', 'Chris']}
ログイン後にコピー

目標は、データフレームを次のように再形成することです。追加の列を含むきちんとした形式:

    Group   Name  Year  Value
0      A    Amy  2013      2
1      A    Amy  2014      9
2      B    Bob  2013      4
...
10  Other         2013      3
11  Other         2014      6
ログイン後にコピー

溶解と再形成の使用Dictionary

melt 関数だけでは変換は完了しません。望ましい結果を得るには、辞書も操作する必要があります。

m = pd.melt(df, id_vars=['Year'], var_name='Name')

d2 = {}
for k, v in d.items():
    for item in v:
        d2[item] = k

m['Group'] = m['Name'].map(d2)
ログイン後にコピー

「Other」値の処理

最後に、「Other」を「Name」列から「グループ」列:

mask = m['Name'] == 'Other'
m.loc[mask, 'Name'] = ''
m.loc[mask, 'Group'] = 'Other'
ログイン後にコピー

結果のデータフレームは、目的の形式と一致します。メルト関数と追加の操作を組み合わせることで、データフレームを柔軟かつ効率的に再形成する方法が提供されます。

以上がPandas Melt とディクショナリ操作は、どのようにして広いデータフレームを整理された形式に再形成できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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