用pandas选出每行最大值,当某行最大值大于2时,统计这一行的最大值个数,并输出3,当某行最大值小于等于2时,输出0,最终将输出值返回到表格的一列中
时间: 2023-10-30 10:08:09 浏览: 104
pandas获取groupby分组里最大值所在的行方法
你可以使用`pandas.DataFrame.apply`函数和lambda函数来对每行进行操作,将结果添加到新列中。具体来说,可以使用`pandas.DataFrame.apply`函数和lambda函数来找到每行的最大值,然后使用条件判断语句来判断每个最大值是否大于2。接着使用`pandas.DataFrame.eq`函数来检查每个元素是否等于该行的最大值。最后,使用`pandas.DataFrame.sum`函数来统计每行的最大值的数量,并根据条件输出相应的结果。下面是示例代码:
```python
import pandas as pd
# 创建示例数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 使用apply和lambda函数操作每行,并将结果添加到新列中
df['max_count'] = df.apply(lambda x: x.eq(x.max()).sum() if x.max() > 2 else 0, axis=1)
print(df)
```
这将输出以下结果:
```
A B C max_count
0 1 4 7 0
1 2 5 8 0
2 3 6 9 1
```
其中,新列`max_count`表示每行的最大值的数量。第一行和第二行的最大值都小于等于2,因此输出0;第三行的最大值为9,大于2,因此输出这一行的最大值个数1。
阅读全文