如何使用Python Pandas将DataFrame单列拆分为多个01分类列
Pandas DataFrame 字母列转独热编码实现方法
这里直接提供两种可行实现,覆盖你是否提前拆分列的两种场景:
方案1:直接基于原始列实现(无需提前拆分,更简洁)
直接用pandas内置的str.get_dummies方法,指定分隔符即可一步生成结果:import pandas as pd # 示例原始数据构造,你可以替换成自己的df df = pd.DataFrame({ "Letters": ["A; B", "B; C", "A; C", "A; B; C", "B"] }) # 核心转换代码,sep按你的分隔符设置为; 加空格 result = df["Letters"].str.get_dummies(sep="; ").reindex(columns=["A", "B", "C"], fill_value=0)如果需要保留原始的
Letters列,额外加一行拼接即可:result = pd.concat([df, result], axis=1)方案2:已完成拆分后的映射实现
如果你已经通过str.split完成了列拆分,拿到了多列拆分结果,可以用以下代码完成映射:# 你已经完成的拆分步骤示例 split_df = df["Letters"].str.split("; ", expand=True) # 后续映射核心代码 result = pd.get_dummies(split_df.stack()).groupby(level=0).sum().reindex(columns=["A", "B", "C"], fill_value=0)
补充说明
如果你需要保留所有出现过的字母作为结果列,不需要限定仅输出A/B/C,删掉代码里的reindex(columns=["A", "B", "C"], fill_value=0)部分即可。
内容的提问来源于stack exchange,提问作者Ramirez
相关产品推荐
相关产品推荐

