【问题标题】:Combine rows base on name and tag their group base on appearance from original pandas dataframe根据名称组合行并根据原始熊猫数据框的外观标记其组
【发布时间】:2021-11-26 18:18:28
【问题描述】:

如何转换此数据框...

name        | group
James       | 1
Mike        | 2
Tod         | 1
Rico        | 2
Billie      | 3
Mike        | 3
Tod         | 2

到这里:

name        | in_group_1 | in_group_2 | in_group_3
James       | True       | False      | True
Mike        | False      | True       | True
Tod         | True       | True       | False
Rico        | False      | True       | False
Billie      | False      | False      | True

在第一个数据框中,它是每个组的所有人的组合。在第二个数据帧中,我们将具有相同名称的行组合起来,并根据第一个数据帧上的组将它们的组标记为 True。之后我们还将删除组列。

【问题讨论】:

    标签: python pandas dataframe python-2.7


    【解决方案1】:

    您可以使用pd.crosstab 和链astype(bool)10 转换为True/False

    >>> pd.crosstab(df.name, df.group).astype(bool).add_prefix('in_group_').reset_index()
    
    group    name  in_group_1  in_group_2  in_group_3
    0      Billie       False       False        True
    1       James        True       False       False
    2        Mike       False        True        True
    3        Rico       False        True       False
    4         Tod        True        True       False
    

    注意:

    >>> pd.crosstab(df.name, df.group).add_prefix('in_group_').reset_index()
    
    group    name  in_group_1  in_group_2  in_group_3
    0      Billie           0           0           1
    1       James           1           0           0
    2        Mike           0           1           1
    3        Rico           0           1           0
    4         Tod           1           1           0
    

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 2018-09-05
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      相关资源
      最近更新 更多