忽略熊猫中不同行的最小值

时间:2020-03-14 10:21:17

标签: pandas dataframe pandasql

我在熊猫数据框下方

Name    |  Value1 |  Value2
User 1  |  1      |  15
User 1  |  2      |  35
User 1  |  3      |  35
User 1  |  3      |  35
User 2  |  4      |  23
User 2  |  5      |  25
User 3  |  6      |  45
User 3  |  7      |  50

我想使用pandas数据框仅选择 Value2 列中值最大的行

赞:

Name    |  Value1 |  Value2
User 1  |  2      |  35
User 1  |  3      |  35
User 1  |  3      |  35
User 2  |  5      |  25
User 3  |  7      |  50

带有说明代码将对我有更多帮助,因为熊猫对我来说是新的。

先谢谢了:)

1 个答案:

答案 0 :(得分:1)

GroupBy.transformmax一起用于每个组的最大值填充的系列,将Value2Series.eq进行比较,并按boolean indexing进行过滤:

df1 = df[df.groupby('Name')['Value2'].transform('max').eq(df['Value2'])]
print (df1)

     Name  Value1  Value2
1  User 1       2      35
2  User 1       3      35
3  User 1       3      35
5  User 2       5      25
7  User 3       7      50

详细信息

print (df.groupby('Name')['Value2'].transform('max'))
0    35
1    35
2    35
3    35
4    25
5    25
6    50
7    50
Name: Value2, dtype: int64

print (df.groupby('Name')['Value2'].transform('max').eq(df['Value2']))
0    False
1     True
2     True
3     True
4    False
5     True
6    False
7     True
Name: Value2, dtype: bool