熊猫:将groupby的结果分配给数据框到新列

吉尔·库雅柏尔

我有以下玩具数据帧(实际的有50万行):

df = pd.DataFrame({'size': list('SSMMMLS'),
                   'weight': [8, 10, 11, 1, 20, 14, 12],
                   'adult' : [False] * 5 + [True] * 2})

   adult size  weight
0  False    S       8
1  False    S      10
2  False    M      11
3  False    M       1
4  False    M      20
5   True    L      14
6   True    S      12

而想要GROUPBY adult,选择该行的这weight是一个新的列最大,并指定size2size列值:

   adult size size2  weight
0  False    S     S       8
1  False    S     S      10
2  False    M     S      11
3  False    M     S       1
4  False    M     S      20
5   True    L     L      14
6   True    S     L      12

我找到了,但对我不起作用

到目前为止,我有:

df.loc[:, 'size2'] = (df.groupby('adult',as_index=True)['weight','size']
                        .transform(lambda x: x.ix[x['weight'].idxmax()]['size']))
耶斯列尔

您可以使用IIUC merge我认为insize2第一个值M,因为maxweight20

df = pd.DataFrame({'size': list('SSMMMLS'),
                   'weight': [8, 10, 11, 1, 20, 14, 12],
                   'adult' : [False] * 5 + [True] * 2})

print(df)
   adult size  weight
0  False    S       8
1  False    S      10
2  False    M      11
3  False    M       1
4  False    M      20
5   True    L      14
6   True    S      12

print(
    df.groupby('adult') 
       .apply(lambda subf: subf['size'][subf['weight'].idxmax()]).reset_index(name='size2')
    )               
   adult size2
0  False     M
1   True     L

print(
    pd.merge(df, 
             df.groupby('adult')
               .apply(lambda subf: subf['size'][subf['weight'].idxmax()]
                     ).reset_index(name='size2'), on=['adult'])
      )          
   adult size  weight size2
0  False    S       8     M
1  False    S      10     M
2  False    M      11     M
3  False    M       1     M
4  False    M      20     M
5   True    L      14     L
6   True    S      12     L

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据两个熊猫数据框之间的条件将值分配给新列

来自分类Dev

将结果分配给数据框的多列

来自分类Dev

通过“assign”将新列分配给数据框

来自分类Dev

R - 计算数据框并将结果分配给新列

来自分类Dev

如何将新值从lapply分配给列表中数据框的新列

来自分类Dev

熊猫,如何避免使用iterrow(如何根据另一个数据框的值将值分配给数据框的新列)

来自分类Dev

Apache Spark-将UDF的结果分配给多个数据框列

来自分类Dev

我们如何计算数据框中的项目并将结果分配给数据框中的新列?

来自分类Dev

通过字典将条件组合分配给数据框中的新列

来自分类Dev

根据逻辑表达式将值分配给R数据框中的新列

来自分类Dev

将新列分配给R中第二个数据框的数据框列表

来自分类Dev

如何将熊猫数据框分配给其他数据框的切片

来自分类Dev

将数据分配给多索引熊猫数据框的子集的正确方法

来自分类Dev

熊猫数据框,将值分配给星期几。特征提取

来自分类Dev

比较后将当前行值分配给熊猫数据框的前一行

来自分类Dev

将列表中的数据框分配给名称列表;大熊猫

来自分类Dev

熊猫数据框,将值分配给星期几。特征提取

来自分类Dev

使用无需迭代的应用将代码分配给熊猫数据框

来自分类Dev

根据其他列值熊猫将值分配给新列

来自分类Dev

熊猫-将列标签分配给记录值,作为最小/最大函数的结果

来自分类Dev

熊猫:为什么列的dtype在分配给数据框时会发生变化

来自分类Dev

熊猫重新索引并将列分配给新列

来自分类Dev

尝试将值分配给groupby对象的新列时出现NotImplementedError

来自分类Dev

尝试将值分配给groupby对象的新列时出现NotImplementedError

来自分类Dev

计算熊猫数据框的百分位数,并将二进制值分配给新列

来自分类Dev

将多个numpy列分配给一个pandas数据框列

来自分类Dev

相应地将数据分配给“新列”并根据值合并重复数据

来自分类Dev

根据字符串条件将值分配给pandas数据框列

来自分类Dev

如何将系列或序列分配给dask数据框列?

Related 相关文章

  1. 1

    根据两个熊猫数据框之间的条件将值分配给新列

  2. 2

    将结果分配给数据框的多列

  3. 3

    通过“assign”将新列分配给数据框

  4. 4

    R - 计算数据框并将结果分配给新列

  5. 5

    如何将新值从lapply分配给列表中数据框的新列

  6. 6

    熊猫,如何避免使用iterrow(如何根据另一个数据框的值将值分配给数据框的新列)

  7. 7

    Apache Spark-将UDF的结果分配给多个数据框列

  8. 8

    我们如何计算数据框中的项目并将结果分配给数据框中的新列?

  9. 9

    通过字典将条件组合分配给数据框中的新列

  10. 10

    根据逻辑表达式将值分配给R数据框中的新列

  11. 11

    将新列分配给R中第二个数据框的数据框列表

  12. 12

    如何将熊猫数据框分配给其他数据框的切片

  13. 13

    将数据分配给多索引熊猫数据框的子集的正确方法

  14. 14

    熊猫数据框,将值分配给星期几。特征提取

  15. 15

    比较后将当前行值分配给熊猫数据框的前一行

  16. 16

    将列表中的数据框分配给名称列表;大熊猫

  17. 17

    熊猫数据框,将值分配给星期几。特征提取

  18. 18

    使用无需迭代的应用将代码分配给熊猫数据框

  19. 19

    根据其他列值熊猫将值分配给新列

  20. 20

    熊猫-将列标签分配给记录值,作为最小/最大函数的结果

  21. 21

    熊猫:为什么列的dtype在分配给数据框时会发生变化

  22. 22

    熊猫重新索引并将列分配给新列

  23. 23

    尝试将值分配给groupby对象的新列时出现NotImplementedError

  24. 24

    尝试将值分配给groupby对象的新列时出现NotImplementedError

  25. 25

    计算熊猫数据框的百分位数,并将二进制值分配给新列

  26. 26

    将多个numpy列分配给一个pandas数据框列

  27. 27

    相应地将数据分配给“新列”并根据值合并重复数据

  28. 28

    根据字符串条件将值分配给pandas数据框列

  29. 29

    如何将系列或序列分配给dask数据框列?

热门标签

归档