首页 > 解决方案 > 计算熊猫每列中值的出现次数

问题描述

我有一个要求,我需要计算所有熊猫列中大于 80 的所有值。

代码:

import pandas as pd

data = {
   'name':['a','b','c'] ,
  "4-8-2021": [80,60,70],
  "5-8-2021": [50, 40, 45],
  "6-8-2021": [70,60,50],
  "7-8-2021": [110, 99, 45]
    
}

df = pd.DataFrame(data)
df

count=df[df.columns[1:] < 99.99].count() 
count

我收到错误“TypeError: '<' 在 'str' 和 'float' 的实例之间不支持”

我想要的输出是:

在此处输入图像描述

有没有其他有效的方法来实现这一目标?如果有人可以帮助解决这个问题,我们将不胜感激。先感谢您

标签: pythonpandas

解决方案


您可以使用“ Greater than or equal” ( .ge):

s = df.iloc[:, 1:].ge(80).sum()

4-8-2021    1
5-8-2021    0
6-8-2021    0
7-8-2021    2
dtype: int64

这是一个 pd.Series,如果您想将其附加到数据框,例如作为一行,您必须更改格式to_frame(数据框),然后对其进行T转置,最后,您可以.append()

df.append(s.to_frame().T)

  name  4-8-2021  5-8-2021  6-8-2021  7-8-2021
0    a        80        50        70       110
1    b        60        40        60        99
2    c        70        45        50        45
0  NaN         1         0         0         2

推荐阅读