如何比较一列的两行,然后更改熊猫中的另一列

我希望能够查看具有相同标识号的两行,然后比较每个人的孩子数并为两个人分配更大的数字。我本来打算按(.groupby)ID号分组,但是我不确定从那里去哪里。具体来说,我不确定如何检查较大的数字,同时用较大的数字替换较小的数字。例如:

 Index   ID             NumChil  
 0       2011000070          3   
 1       2011000070          0   
 2       2011000074          0 
 3       2011000074          1   

应该上交:

 Index   ID             NumChil  
 0       2011000070          3   
 1       2011000070          3   
 2       2011000074          1 
 3       2011000074          1  
海盗


您想groupbytransform使用的首选选项max

df.groupby('ID').NumChil.transform('max')

0    3
1    3
2    1
3    1
Name: NumChil, dtype: int64

您可以使用

df['NumChil'] = df.groupby('ID').NumChil.transform('max')
df

   Index          ID  NumChil
0      0  2011000070        3
1      1  2011000070        3
2      2  2011000074        1
3      3  2011000074        1

或制作副本

df.assign(NumChil=df.groupby('ID').NumChil.transform('max'))

   Index          ID  NumChil
0      0  2011000070        3
1      1  2011000070        3
2      2  2011000074        1
3      3  2011000074        1

替代方法

groupbymaxmap

df.ID.map(df.groupby('ID').NumChil.max())

0    3
1    3
2    1
3    1
Name: ID, dtype: int64

df.assign(NumChil=df.ID.map(df.groupby('ID').NumChil.max()))

   Index          ID  NumChil
0      0  2011000070        3
1      1  2011000070        3
2      2  2011000074        1
3      3  2011000074        1

groupbymaxjoin

df.drop('NumChil', 1).join(df.groupby('ID').NumChil.max(), on='ID')

   Index          ID  NumChil
0      0  2011000070        3
1      1  2011000070        3
2      2  2011000074        1
3      3  2011000074        1

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用sql查询在同一列中减去两行的值?

熊猫在一列中找到最大值,然后从另一行中显示

如何使用熊猫中的另一列更新列

当一列是日期时间而另一列是对象时,如何串联/合并熊猫中的两列?

在两行而不是一列中显示<ul>

将值与上一行中的值进行比较,然后将值分配给另一列(熊猫)-如何加快速度?

如何在熊猫中比较上一行并使用group by更改另一列的值?

熊猫:通过将一列的值与另一行中同一列的另一个值进行比较来过滤行

在熊猫中,如何从一列中的唯一值中创建列,然后根据另一列中的值填充它?

根据另一列中的值比较一列中的两个值

如果检查的第一列中的两行相同,如何使用另一列?

如何将这两行合并为SQL中的一列

如何在Excel工作表中查找一列的两行之间的时差?

如何在不使用固定大小的情况下创建两列(一列两行,另一列一行)?

在熊猫中以均值取一列,然后以另一列取平均值

如果一列中的图案匹配两行,如何打印新行?

如何比较3列,然后在另一列中输入是或否?

根据另一列中的两行计算数据框列

如何在 HTML/CSS 中嵌套一列一行和一列两行

如何使用显示天数的 SQL 查询在同一列中减去两行的日期?

如何使用 SQL 查询在同一列中减去两行的值?

如何在 Bootstrap 4 中跨越一列两行

SQLite:如何使用另一列的两行之间的差值更新列?

如果同一行中另一列中的值匹配,如何比较一列的两个值

两行的总和并将其粘贴到另一列中的另一个工作簿

如何使用两行中的值在 Pandas 数据框中创建一列?

基于 Pandas 中的一列合并两行

熊猫:如果一列匹配而另一列不匹配,则删除两行

如何根据熊猫中另一列中的描述计算一列中的值?