Python 如何将数据帧转换为0和1的数据数组?
我有一个熊猫数据框,看起来像这样:Python 如何将数据帧转换为0和1的数据数组?,python,arrays,pandas,numpy,Python,Arrays,Pandas,Numpy,我有一个熊猫数据框,看起来像这样: col_1 col_2 a 4 a 3 b 2 c 2 d 1 b 4 c 1 我需要将其转换为一个二维数组的NumPy数组,其中每个二维数组对应一个字母。例如,如果“a”不与1和2一起出现,而与3和4一起出现,则对应于它的2D数组应该类似于[0,0,1,1]。所以在这个例子中,我需要: [[0, 0, 1, 1], [0, 1, 0, 1], [0, 1, 0, 0], [1, 0, 0, 1]]
col_1 col_2
a 4
a 3
b 2
c 2
d 1
b 4
c 1
我需要将其转换为一个二维数组的NumPy数组,其中每个二维数组对应一个字母。例如,如果“a”不与1和2一起出现,而与3和4一起出现,则对应于它的2D数组应该类似于[0,0,1,1]
。所以在这个例子中,我需要:
[[0, 0, 1, 1], [0, 1, 0, 1], [0, 1, 0, 0], [1, 0, 0, 1]]
最好的方法是什么?这里是一种方法
交叉表
l = pd.crosstab(df.col_1,df.col_2).values.tolist()
Out[23]: [[0, 0, 1, 1], [0, 1, 0, 1], [1, 1, 0, 0], [1, 0, 0, 0]]