パンダ データフレームをメルトするにはどうすればよいですか?
パンダ データフレームをメルトするには、複数の列を含むワイド形式からロング形式に変換する必要があります。 'variable' と 'value' という 2 つのプライマリ列があります。これは、melt() 関数を使用して実現できます。
問題 1: データフレームを溶かして列を行に入れ替える
df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
これにより、元のデータフレームが次のように変換されます。 「名前」、「年齢」、「件名」、「成績」の列を含む希望の形式。 「件名」列には元の列ヘッダーが含まれ、「成績」には対応する値が含まれます。
問題 2: 特定の列を含めるために溶解されたデータをフィルタリングする
df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades') filtered_df = df[df['Subject'] == 'Math']
溶けたデータフレームをフィルタリングすることで、不要な列を削除できます。この場合、「件名」が「数学」に設定されている行のみが保持されます。
問題 3: 溶けたデータをグループ化し、スコア順に並べる
df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades') sorted_df = df.groupby('value').agg({'Name': ', '.join, 'Subject': ', '.join}) sorted_df = sorted_df.sort_values('value')
これにより、「value」列の重複した値を持つ行がマージされ、「Name」列と「Subject」列が次のように集計されます。カンマ区切りの値。次に、結果が昇順に並べ替えられます。
問題 4: 溶けたデータフレームの溶解
unmelted_df = df.pivot(index=['Name', 'Age'], columns='Subject', values='Grades')
溶けたデータフレームを元の形式に変換するには、次のようにします。 pivot() 関数を使用できます。これにより、データが「名前」列と「年齢」列でグループ化され、「件名」列をピボットして元のデータフレーム形状が作成されます。
問題 5: 溶けたデータをグループ化し、件名と成績を連結する
df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades') grouped_df = df.groupby('Name').agg({'Subject': ', '.join, 'Grades': ', '.join})
問題 3 と同様に、これはメルトされたデータフレームをグループ化します。 「名前」を入力し、「件名」列と「成績」列をカンマを使用して連結します。結果は、各人につき 1 行のデータフレームとなり、科目と成績がリストされます。
問題 6: すべての列を値として含むデータフレームを結合する
df = df.melt(value_name='Value', var_name='Column')
すべての列を値として含むデータフレームをメルトし、melt() 関数から id_vars 引数を省略します。これにより、「Column」列に元の列ヘッダーがリストされ、「Value」列に対応する値が含まれるデータフレームが作成されます。
以上が「melt()」関数を使用して Pandas DataFrame をメルトして操作するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。