Python 如何透视行';s的唯一值并标记其出现?

Python 如何透视行';s的唯一值并标记其出现?,python,pandas,pivot-table,data-science,Python,Pandas,Pivot Table,Data Science,我正在为下面的案例寻找解决方案: 当df只包含一个维度时,如何透视df,使col值成为列 以及如何继续,以便根据这些行在上一列中的出现情况,在每一列中生成值为0或1的结果 这会更容易说明。 因此,从这种数据框架中: df = DATA cat1 dog1 cat2 dog2 cat3 dog3 ... df = Animal cat1 dog1 cat2 dog2 cat3 dog3 ... cat1 1 0 0

我正在为下面的案例寻找解决方案:

  • 当df只包含一个维度时,如何透视df,使col值成为列

  • 以及如何继续,以便根据这些行在上一列中的出现情况,在每一列中生成值为0或1的结果

  • 这会更容易说明。 因此,从这种数据框架中:

    df =
    
    DATA   
    cat1
    dog1
    cat2
    dog2
    cat3
    dog3
    ...   
    
    df =
    
    Animal   cat1   dog1   cat2   dog2   cat3   dog3    ...
    cat1    1      0      0      0      0      0        ...
    dog1    0      1      0      0      0      0        ...
    cat2    0      0      1      0      0      0        ...
    dog2    0      0      0      1      0      0        ...
    cat3    0      0      0      0      1      0        ...
    dog3    0      0      0      0      0      1        ...
    ...   
    cat1    1      0      0      0      0      0        ...
    dog1    0      1      0      0      0      0        ...
    
    对于这种数据帧:

    df =
    
    DATA   
    cat1
    dog1
    cat2
    dog2
    cat3
    dog3
    ...   
    
    df =
    
    Animal   cat1   dog1   cat2   dog2   cat3   dog3    ...
    cat1    1      0      0      0      0      0        ...
    dog1    0      1      0      0      0      0        ...
    cat2    0      0      1      0      0      0        ...
    dog2    0      0      0      1      0      0        ...
    cat3    0      0      0      0      1      0        ...
    dog3    0      0      0      0      0      1        ...
    ...   
    cat1    1      0      0      0      0      0        ...
    dog1    0      1      0      0      0      0        ...
    
    首先,我尝试收集所有唯一的值,然后我将其重塑为
    pd.DataFrame
    ,因为它是一个np数组。然后我试着使用pivot。我知道它应该有像“index”、“column”和“values”这样的参数,但在我的例子中,我只有一个维度(只有一列)


    您可以使用以下命令:

    其中df

       DATA
    0  cat1
    1  dog1
    2  cat2
    3  dog2
    4  cat3
    5  dog3
    6  dog1
    
    使用

    输出:

          cat1  cat2  cat3  dog1  dog2  dog3
    DATA                                    
    cat1     1     0     0     0     0     0
    dog1     0     0     0     1     0     0
    cat2     0     1     0     0     0     0
    dog2     0     0     0     0     1     0
    cat3     0     0     1     0     0     0
    dog3     0     0     0     0     0     1
    dog1     0     0     0     1     0     0
    

    非常感谢,斯科特,这很有帮助!坦率地说,我不知道怎么做傻瓜。