如何将pandas Series转换为各值对应二进制指示符的DataFrame
实现方法
先确保已经导入pandas库,你可以用pd.get_dummies配合转置快速实现需求,完整代码如下:
import pandas as pd # 构造原Series s = pd.Series([0,2,1,0], index=['t1','t2','t3','t4']) # 转换为目标DataFrame df = pd.get_dummies(s).T.reset_index(names='value')
运行后得到的df完全符合要求的结构:
| value | t1 | t2 | t3 | t4 |
|---|---|---|---|---|
| 0 | 1 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 2 | 0 | 1 | 0 | 0 |
其他可选实现方式
你也可以用pd.crosstab实现,逻辑更直白:
df = pd.crosstab(index=s.values, columns=s.index, rownames=['value']).reset_index()
两种方式输出结果完全一致。
内容的提问来源于stack exchange,提问作者Shantanu Neema
相关产品推荐
相关产品推荐

