Skip to main content
 首页 » 编程设计

python之将类别为值的 pandas Series 转换为 DataFrame 掩码

2025年05月04日13lvdongjie

<分区>

我有一个非常简单的问题,我不确定如何通过几个简单的调用来解决。我有以下系列:

In [3]: d = pd.Series(data=['A', 'A', 'B', 'C', 'D', 'D', 'B'], index=range(7)) 
 
In [4]: d 
Out[4]:  
0    A 
1    A 
2    B 
3    C 
4    D 
5    D 
6    B 
dtype: object 

我想将上面的转换成:

In [5]: pd.DataFrame({'A':[1, 1, 0, 0, 0, 0, 0], 'B': [0, 0, 1, 0, 0, 0, 1], 'C':[0, 0, 0, 1, 0, 0, 0], 'D':[0, 0, 0, 0, 1, 1, 0]}) 
Out[5]:  
   A  B  C  D 
0  1  0  0  0 
1  1  0  0  0 
2  0  1  0  0 
3  0  0  1  0 
4  0  0  0  1 
5  0  0  0  1 
6  0  1  0  0 

换句话说,有一个具有重复值的系列。我想创建一个与 Series 具有相同索引的 DataFrame,并且列是该系列的唯一值集。然后我想填充每一列,将 1s 放在系列中存在列名的每个索引处,将 0 放在其他地方。不确定如何以简单的方式做到这一点。