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()