複合値をパンダデータフレームの列に変換します

アレキサンダーワン

次のようなパンダのデータフレームがあるとします。

Category    col1    col2    value
  A          a        a        1
  A          a        b        2
  A          b        a        3
  A          b        b        4
  B          a        a        5
  B          a        b        6
  B          b        a        7
  B          b        b        8          

次に、データフレームを次の形式に変更します。

Category    aa    ab    ba    bb  
A            1     2     3     4
B            5     6     7     8

私はいくつかのアプローチを試しましたが、うまくいきませんでした。これを実現する機能はありますか?

ジェズリール

列を結合しますpivot

df['new'] = df['col1'] + df['col2']
df1 = df.pivot('Category','new','value')
print (df1)
new       aa  ab  ba  bb
Category                
A          1   2   3   4
B          5   6   7   8

またはDataFrame.set_indexSeries.unstack

df1 = df.set_index(['Category',df['col1'] + df['col2']])['value'].unstack()
print (df1)
          aa  ab  ba  bb
Category                
A          1   2   3   4
B          5   6   7   8

インデックスの列が必要な場合は最後:

df1 = df1.rename_axis(None, axis=1).reset_index()
print (df1)
  Category  aa  ab  ba  bb
0        A   1   2   3   4
1        B   5   6   7   8

可能であればエラー:

ValueError:インデックスに重複するエントリが含まれているため、形状を変更できません

print (df)
  Category col1 col2  value
0        A    a    a      1
1        A    a    a      4
2        A    a    b      2
3        A    b    a      3
4        A    b    b      4
5        B    a    a      5
6        B    a    b      6
7        B    b    a      7
8        B    b    b      8

次にDataFrame.pivot_table、集計関数が必要ですmeanたとえば、デフォルト

df['new'] = df['col1'] + df['col2']
df = df.pivot_table(index='Category',columns='new',values='value', aggfunc='mean')
print (df)
new        aa   ab   ba   bb
Category                    
A         2.5  2.0  3.0  4.0
B         5.0  6.0  7.0  8.0

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダデータフレームの変換-一部の行の値を列に変換します

分類Dev

Pythonを使用して複数の追加値をパンダデータフレームに変換します

分類Dev

複数の列を持つパンダでパンダのデータフレームを変換します

分類Dev

行と列の値をdictとデータフレームパンダに変換します

分類Dev

パンダ-データフレームを水平方向に統合して、行を列に変換します

分類Dev

パンダ:データフレーム列をdictに変換し、列のタイトルをdictキー、列の値をdict値とします

分類Dev

パンダ:キーと値が列であるデータフレームに辞書を変換します

分類Dev

パンダデータフレームの複数の列を1つの列に結合します

分類Dev

Pythonパンダのデータフレームの行または列をnumpy配列に変換します

分類Dev

Pythonパンダのデータフレームの行または列をnumpy配列に変換します

分類Dev

パンダ:データフレーム内のすべての列を文字列に変換します

分類Dev

パンダのデータフレームを列をキーとしてjsonに変換します

分類Dev

文字列のパンダデータフレームをintのnumpy配列に変換します

分類Dev

選択した行のパンダデータフレームで値を次々に変更/交換します

分類Dev

データフレームパンダの列をいずれかの列の値に変更します

分類Dev

パンダデータフレームの文字列列を01ベクトルに変換します

分類Dev

パンダを使用して、データフレームで複数の列を2つの新しい列に変換します

分類Dev

パンダを使用して、データフレーム内の複数の列を単一の列に変換します

分類Dev

パンダはデータフレームをタプルの配列に変換します

分類Dev

パンダはデータフレームをタプルの配列に変換します

分類Dev

パンダデータフレームの値を小数点以下2桁に変換します

分類Dev

シングルトン行列のパンダデータフレームを数値のデータフレームに変換します

分類Dev

列の値に基づいて複数のパンダデータフレームを作成します

分類Dev

ns精度の文字列をパンダデータフレームの日時に変換します

分類Dev

辞書のリストを含む列をパンダデータフレームの複数の列に変換します

分類Dev

列名の条件に基づいてパンダデータフレームの列値を合計します

分類Dev

パンダの特定の列を合計して、複数のデータフレームを結合します

分類Dev

パンダで相関行列を3列のデータフレームに変換しますか?

分類Dev

パンダ列内の辞書をデータフレームに変換します

Related 関連記事

  1. 1

    パンダデータフレームの変換-一部の行の値を列に変換します

  2. 2

    Pythonを使用して複数の追加値をパンダデータフレームに変換します

  3. 3

    複数の列を持つパンダでパンダのデータフレームを変換します

  4. 4

    行と列の値をdictとデータフレームパンダに変換します

  5. 5

    パンダ-データフレームを水平方向に統合して、行を列に変換します

  6. 6

    パンダ:データフレーム列をdictに変換し、列のタイトルをdictキー、列の値をdict値とします

  7. 7

    パンダ:キーと値が列であるデータフレームに辞書を変換します

  8. 8

    パンダデータフレームの複数の列を1つの列に結合します

  9. 9

    Pythonパンダのデータフレームの行または列をnumpy配列に変換します

  10. 10

    Pythonパンダのデータフレームの行または列をnumpy配列に変換します

  11. 11

    パンダ:データフレーム内のすべての列を文字列に変換します

  12. 12

    パンダのデータフレームを列をキーとしてjsonに変換します

  13. 13

    文字列のパンダデータフレームをintのnumpy配列に変換します

  14. 14

    選択した行のパンダデータフレームで値を次々に変更/交換します

  15. 15

    データフレームパンダの列をいずれかの列の値に変更します

  16. 16

    パンダデータフレームの文字列列を01ベクトルに変換します

  17. 17

    パンダを使用して、データフレームで複数の列を2つの新しい列に変換します

  18. 18

    パンダを使用して、データフレーム内の複数の列を単一の列に変換します

  19. 19

    パンダはデータフレームをタプルの配列に変換します

  20. 20

    パンダはデータフレームをタプルの配列に変換します

  21. 21

    パンダデータフレームの値を小数点以下2桁に変換します

  22. 22

    シングルトン行列のパンダデータフレームを数値のデータフレームに変換します

  23. 23

    列の値に基づいて複数のパンダデータフレームを作成します

  24. 24

    ns精度の文字列をパンダデータフレームの日時に変換します

  25. 25

    辞書のリストを含む列をパンダデータフレームの複数の列に変換します

  26. 26

    列名の条件に基づいてパンダデータフレームの列値を合計します

  27. 27

    パンダの特定の列を合計して、複数のデータフレームを結合します

  28. 28

    パンダで相関行列を3列のデータフレームに変換しますか?

  29. 29

    パンダ列内の辞書をデータフレームに変換します

ホットタグ

アーカイブ