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 =
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
非常感谢,斯科特,这很有帮助!坦率地说,我不知道怎么做傻瓜。