簡體   English   中英

如何旋轉pandas DataFrame列以創建二進制“值表”?

[英]How to pivot pandas DataFrame column to create binary “value table”?

我有以下熊貓數據框:

import pandas as pd
df = pd.read_csv("filename.csv")

df 
     A   B         C         D        E    
0    a  0.469112 -0.282863 -1.509059  cat  
1    c -1.135632  1.212112 -0.173215  dog   
2    e  0.119209 -1.044236 -0.861849  dog   
3    f -2.104569 -0.494929  1.071804  bird   
4    g -2.224569 -0.724929  2.234213  elephant
...

我想基於column E的分類值的標識創建更多列,以使數據框如下所示:

 df 
         A   B         C         D        cat    dog     bird    elephant ....    
    0    a  0.469112 -0.282863 -1.509059  -1      0       0       0
    1    c -1.135632  1.212112 -0.173215   0     -1       0       0
    2    e  0.119209 -1.044236 -0.861849   0     -1       0       0
    3    f -2.104569 -0.494929  1.071804   0      0      -1       0
    4    g -2.224569 -0.724929  2.234213   0      0       0       0
    ...

也就是說,我轉動的值列E是基於對值的二進制矩陣E ,給1 ,如果該值存在,並且0的地方沒有其他所有(在這里,我想它是-1或“負二進制矩陣”)?

我不確定pandas中哪個函數最能做到這一點:也許pandas.DataFrame.unstack()嗎?

任何見解表示贊賞!

使用pd.concatdropget_dummies

pd.concat([df.drop('E', 1), pd.get_dummies(df.E).mul(-1)], axis=1)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM