【问题标题】:Store unique values from group to another column in Pandas在 Pandas 中将唯一值从组存储到另一列
【发布时间】:2019-06-06 10:30:05
【问题描述】:

我在将唯一值作为值从一列获取到另一列时遇到问题。

我有:

id  value1 valueNo
1    12      140
1    13      149
1    11      149
2    11      nan
2    11      150
3    15      145
3    12      149

期望的输出是

id  value1 valueNo   uniqueNo
1    12      140      140, 149
1    13      149      140, 149
1    11      149      140, 149
2    11      nan      150
2    11      150      150
3    15      145      145, 149
3    12      149      145, 149

我尝试了几种方法,但对我没有任何效果。

df['uniqueNo']=df.groupby(['id'])['valueNo'].apply(lambda x: x.unique())
d['uniqueNo'] = df.groupby(['id'])['valueNo'].apply(list)

【问题讨论】:

    标签: python pandas group-by unique


    【解决方案1】:

    如果缺失值没有问题,请使用GroupBy.transform 和unique:

    df['uniqueNo']=df.groupby(['id'])['valueNo'].transform('unique')
    print (df)
       id  value1  valueNo        uniqueNo
    0   1      12    140.0  [140.0, 149.0]
    1   1      13    149.0  [140.0, 149.0]
    2   1      11    149.0  [140.0, 149.0]
    3   2      11      NaN    [nan, 150.0]
    4   2      11    150.0    [nan, 150.0]
    5   3      15    145.0  [145.0, 149.0]
    6   3      12    149.0  [145.0, 149.0]
    

    如果需要删除它们,解决方案是首先删除它们,将 unique 和 map 聚合到新列:

    s = df.dropna(subset=['valueNo'])['valueNo'].astype(int).groupby(df['id']).unique()
    #if converting to intgers is not necessary
    #s = df.dropna(subset=['valueNo']).groupby('id')['valueNo'].unique()
    df['uniqueNo'] = df['id'].map(s)
    print (df)
       id  value1  valueNo    uniqueNo
    0   1      12    140.0  [140, 149]
    1   1      13    149.0  [140, 149]
    2   1      11    149.0  [140, 149]
    3   2      11      NaN       [150]
    4   2      11    150.0       [150]
    5   3      15    145.0  [145, 149]
    6   3      12    149.0  [145, 149]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2017-02-15
      相关资源
      最近更新 更多