Python Pandas/Numpy根据存在性将行移到列中

Python Pandas/Numpy根据存在性将行移到列中,python,pandas,numpy,scikit-learn,Python,Pandas,Numpy,Scikit Learn,我有这样一个数据帧: col_a | col b 0 1 0 2 0 3 1 1 1 2 我想将其转换为: col_a | 1 | 2 | 3 0 1 1 1 1 1 1 0 不幸的是,大多数围绕这个主题的问题/答案都只是围绕着这个主题 背景:对于Scikit,我想使用列b中存在的值作为属性/功能(类似于一种手动计数向量器,但在本例中用于行值而不是文本)用于创建索引的第一列,最后使用

我有这样一个数据帧:

col_a | col b
  0      1
  0      2
  0      3
  1      1
  1      2
我想将其转换为:

col_a | 1 | 2 | 3
  0     1   1   1
  1     1   1   0
不幸的是,大多数围绕这个主题的问题/答案都只是围绕着这个主题

背景:对于Scikit,我想使用列b中存在的值作为属性/功能(类似于一种手动计数向量器,但在本例中用于行值而不是文本)

用于创建索引的第一列,最后使用每个索引的
max
仅返回输出中的
1/0
值:

df = pd.get_dummies(df.set_index('col_a')['col b'], prefix='', prefix_sep='').max(level=0)

print (df)
       1  2  3
col_a         
0      1  1  1
1      1  1  0
您可以将其用作数据透视框的列,并将其用作数据透视框的列,该数据透视框可以使用以下因素的频率表获得,并且默认情况下会计算这些因素的频率表:

cols = df.groupby('col_a').cumcount()
pd.crosstab(index = df.col_a, columns = cols)

col_0  0  1  2
col_a         
0      1  1  1
1      1  1  0

@杰斯雷尔:哎呀,修好了!