【问题标题】:Reshaping Pandas Dataframe: Unique Column values as Column names重塑 Pandas 数据框:将唯一列值作为列名
【发布时间】:2015-02-25 19:35:05
【问题描述】:

我有一个表示一对多标签关系的数据框,列名“user_id”和“tags”。一个 user_id 可以与许多标签相关联,但我想重新排列我的数据框,使每行只有一个 user_id,每个标签值是它自己的列。

即我有:

User_id, Tags

1, Dresses,    
1, Accessories,
2, Dresses,
2, Hats,

并且想要:

User_id, Dresses, Accessories, Hats,    
1,        1,         1,         0,
2,        1,          0,         1,

User_id, Dresses, Accessories, Hats,
1,        True,         True,         False,    
2,        True,          False,         True,

【问题讨论】:

  • 看看pandas的pivot()

标签: python pandas data-manipulation


【解决方案1】:

您可以使用get_dummiesgroupby

df =pd.DataFrame({'user_id':[1,1,2,2],'tags':['Dresses','Accessories','Dresses','Hats']})
pd.get_dummies(df).groupby('user_id').max()

返回:

       tags_Accessories     tags_Dresses    tags_Hats
user_id             
1       1                   1                0
2       0                   1                1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2017-09-18
    • 2022-12-05
    • 2014-01-06
    • 1970-01-01
    • 2012-10-09
    • 2019-02-24
    相关资源
    最近更新 更多