Python Pandas/Numpy:如何将列数据转换为稀疏矩阵

Python Pandas/Numpy:如何将列数据转换为稀疏矩阵,python,numpy,pandas,Python,Numpy,Pandas,我正在和熊猫和Numpy一起做一个iPython项目。我也只是在学习,所以这个问题可能很基本。假设我有两列数据 --------------- | col1 | col2 | --------------- | a | b | | c | d | | b | e | --------------- 我想转换表单的这些数据 --------------------- | a | b | c | d | e | --------------------- |

我正在和熊猫和Numpy一起做一个iPython项目。我也只是在学习,所以这个问题可能很基本。假设我有两列数据

---------------
| col1 | col2 | 
---------------
| a    | b    |
| c    | d    |
| b    | e    |
---------------
我想转换表单的这些数据

---------------------
| a | b | c | d | e |
---------------------
| 1 | 1 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 0 | 1 |
---------------------
然后我想看一个三栏的版本

---------------------
| col1 | col2 | val | 
---------------------
| a    | b    | .5  |
| c    | d    | .3  |
| b    | e    | .2  |
---------------------
把它变成

---------------------------
| a | b | c | d | e | val |
---------------------------
| 1 | 1 | 0 | 0 | 0 | .5  |
| 0 | 0 | 1 | 1 | 0 | .3  |
| 0 | 1 | 0 | 0 | 1 | .2  |
---------------------------

我对熊猫和Numpy很陌生,我该怎么做?我将使用哪些函数?

我想您正在寻找函数和方法

这将生成以下两个数据帧:

In [16]: df1
Out[16]: 
   a  b  c
0  1  0  0
1  0  0  1
2  0  1  0

[3 rows x 3 columns]

In [17]: df2
Out[17]: 
   b  d  e
0  1  0  0
1  0  1  0
2  0  0  1

[3 rows x 3 columns]
可按如下方式组合:

In [10]: dummies = df1.combineAdd(df2)

In [18]: dummies
Out[18]: 
   a  b  c  d  e
0  1  1  0  0  0
1  0  0  1  1  0
2  0  1  0  0  1

[3 rows x 5 columns]
最后一步是将
val
列复制到新的数据帧中

In [19]: dummies['val'] = df.val

In [20]: dummies
Out[20]: 
   a  b  c  d  e  val
0  1  1  0  0  0  0.5
1  0  0  1  1  0  0.3
2  0  1  0  0  1  0.2

[3 rows x 6 columns]
In [19]: dummies['val'] = df.val

In [20]: dummies
Out[20]: 
   a  b  c  d  e  val
0  1  1  0  0  0  0.5
1  0  0  1  1  0  0.3
2  0  1  0  0  1  0.2

[3 rows x 6 columns]