如何用Python Pandas将用户组字典转换为Y/N校验DataFrame表格
实现代码(原生Pandas,无额外依赖)
import pandas as pd d = { 'user1': ['group1', 'group2', 'group3'], 'user2': ['group1', 'group2'], 'user3': ['group2'] } # 转换字典为Series,索引为用户名 user_series = pd.Series(d) # 展开用户组列表为单行单组格式 exploded_series = user_series.explode() # 生成独热编码后按用户名聚合,替换数值为Y/N result_df = pd.get_dummies(exploded_series)\ .groupby(level=0)\ .sum()\ .replace({1: 'Y', 0: 'N'}) print(result_df)
运行后输出内容如下:
group1 group2 group3 user1 Y Y Y user2 Y Y N user3 N Y N
可选精简实现(需安装scikit-learn)
import pandas as pd from sklearn.preprocessing import MultiLabelBinarizer d = { 'user1': ['group1', 'group2', 'group3'], 'user2': ['group1', 'group2'], 'user3': ['group2'] } mlb = MultiLabelBinarizer() result_df = pd.DataFrame( mlb.fit_transform(d.values()), index=d.keys(), columns=mlb.classes_ ).replace({1: 'Y', 0: 'N'}) print(result_df)
内容的提问来源于stack exchange,提问作者ajd018
相关产品推荐
相关产品推荐

