Python 使用预定义列转换数据帧熊猫

Python 使用预定义列转换数据帧熊猫,python,pandas,numpy,Python,Pandas,Numpy,我有一个包含多行和多列的数据框架,如下所示: a b c d 0 2 1 3 1 1 2 2 1 1 2 2 3 6 1 3 2 4 4 1 我想根据列b作为行和列c作为列将上述数据帧转换为矩阵。使用交叉表,我将获得: c 1 3 4 6 b 1 0 1 0 0 2 1 0 0 0 3 0 0

我有一个包含多行和多列的数据框架,如下所示:

      a    b   c   d
0     2    1   3   1
1     2    2   1   1      
2     2    3   6   1    
3     2    4   4   1    
我想根据
列b
作为
列c
作为
将上述数据帧转换为矩阵。使用
交叉表
,我将获得:

c   1   3   4   6
b
1   0   1   0   0
2   1   0   0   0
3   0   0   0   1
4   0   0   1   0
我想要的是列应该显示从
1-6
,包括
2
5
,如下所示

c   1   2   3   4   5   6
b
1   0   0   1   0   0   0
2   1   0   0   0   0   0
3   0   0   0   0   0   1
4   0   0   0   1   0   0
如何使用Pandas获取上述表格?

使用最小和最大列:

df1 = df.reindex(np.arange(df.columns.min(), df.columns.max() + 1), axis=1, fill_value=0)
print (df1)
   1  2  3  4  5  6
c                  
1  0  0  1  0  0  0
2  1  0  0  0  0  0
3  0  0  0  0  0  1
4  0  0  0  1  0  0

谢谢它起作用了。如果我需要转换为numpy矩阵,我只需要使用
.to\u numpy()
,对吗?@tfreak-确切地说,添加
.to\u numpy()