55190


下記のようなpandas.DataFrameがある時に、縦持ちに変換を行いたいです。  
調べたところpivot_tableが使用できそうな感じはありますが、うまく使用する事ができませんでした。

[code]

    import pandas as pd
    df1 = pd.DataFrame([[0, 'e1', 'e11'], [1, 'e1', 'e22'], [2, 'e1', 'e33']], columns=['id', 'c1', 'c2'])
    df1
    
    # id c1 c2
    # 0 e1 e11
    # 1 e1 e22
    # 2 e1 e33
    
[/code]

変換後

[code]

    # id c_name value
    # 0 c1 e1
    # 0 c2 e11
    # 1 c1 e1
    # 1 c2 e22
    # 2 c1 e1
    # 2 c2 e33
    
[/code]


CC BY-SA 4.0
2019-05-23T06:57:22.993
55189
2019-05-27T10:06:40.153
13022
question
python3 pandas
pandasのデータフレームで縦持ち横持ちの変換をしたい


すいません。自己解決できました。

[code]

    pd.melt(df1,id_vars=['id'], value_vars=['c1', 'c2'])
    
[/code]

* * *
[code]

    id variable value
    0 c1 e1
    1 c1 e1
    2 c1 e1
    0 c2 e11
    1 c2 e22
    2 c2 e33
    
[/code]


CC BY-SA 4.0
2019-05-23T07:12:58.860
55190
2019-05-23T07:12:58.860
13022
55189
answer

[code]

    df1 = pd.DataFrame([['e1', 'e11'], ['e1', 'e22'], ['e1', 'e33']], columns=['c1','c2'])
    
    
    df1.stack()
    0  c1     e1
       c2    e11
    1  c1     e1
       c2    e22
    2  c1     e1
       c2    e33
    dtype: object
    
[/code]

こっちのほうがスマート？


CC BY-SA 4.0
2019-05-27T10:06:40.153
55289
2019-05-27T10:06:40.153
34277
55189
answer