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
@杰斯雷尔:哎呀,修好了!