【问题标题】:Countif function in pythonpython中的countif函数
【发布时间】:2021-01-02 10:40:24
【问题描述】:

enter image description here 在 excel 文件中,我可以像附图一样执行 countif 功能,但是如何在 Python Pandas 中执行此 countif 功能,请提供代码帮助我

【问题讨论】:

标签: python pandas


【解决方案1】:

这是一个示例,说明如何创建函数来完成您正在寻找的内容。 建议的其他 stackoverflow 帖子的问题是,您必须重塑数据才能使这些方法正常工作(您可以使用 df.T 进行操作),但这在您的情况下可能不实用。

我已更新我的答案以说明第一列(名称)。

import pandas as pd

# creating example df
df = pd.DataFrame({'name':['Akbar','Jashim'],
                   'col1':[4,5],
                   'col2':[5,8],
                   'col3':[2,12],
                   'col4':[10,14],
                   'col5':[22,16],
                   'col6':[12,19],
                   'col7':[3,6],
                   })

# create function to get number of values
# over 10 for each row in the df
def countif(df):
    over_10 = []
    # Loop over rows in df using .iloc
    for i in df.index:
        row_count = (df.iloc[i,1:] > 10).sum()
        over_10.append(row_count)
    return over_10
        
df['over_10'] = countif(df)

【讨论】:

  • 尊敬的 Bradon 先生,它可以工作,谢谢先生 (Bradon),但出现了一个错误。它显示,在 'str' 和 'int' 的实例之间不支持 '>'。因为在第一列中有一个“名称”列。请帮我解决这个名字栏,这是必要的。
  • 我已更新上述答案以说明第一列(名称)。我只是在 df.iloc[i] 中添加了一些代码,以便它获取索引 i 处的行以及索引 1 到 df 结尾的所有列。现在看起来像 df.iloc[i,1:]
  • :) :) :) 先生,它现在可以正常工作了:D 非常感谢您
猜你喜欢
  • 1970-01-01
  • 2019-07-05
  • 2015-09-07
  • 2022-01-15
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多