繁体   English   中英

将 Excel 转换为 Python 公式

[英]counifs Excel to Python Formula

Excel公式
=countif(C:L,"<=100" , C:L,">0")
尝试计算其值 <=100 且 >0(或!= 0)的单元格

我能够使用 iloc 对列进行分组,然后按以下方式过滤,然后计数,但似乎我陷入了深泥中,所以我在这里 x(

columns=(filteredbyABArank.iloc[:, [2, 3, 4,5,6,7,8,9,10,11]]<=100) & (filteredbyABArank.iloc[:, [2, 3, 4,5,6,7,8,9,10,11]]>0)
columns.count()

找到的唯一方法是使用 for 循环,一次做一行,因为在 python 上没有简单的方法来执行“countif”,而是使用 forloop

您可以使用 np.select() 来查找列的位置 >0 或 <= 100

condition_list = [(df['Column2'] > 0) & (df['Column2'] <= 100)]
choice_list = [1]
df['Count Column'] = np.select(condition_list, choice_list, 0)
print(df['Count Column'].sum())

看到您更新的问题,我看到您想专门针对 10 列。 您可以将此更新选项与 np.select() 一起使用,使其更具动态性和可扩展性

column_list = ['Column1', 'Column2']
for i in range(0, len(column_list)):
    condition_list = [(df[column_list[i]] > 0) & (df[column_list[i]] <= 100)]
    choice_list = [1]
    new_column__count = f'Count Column {column_list[i]}'
    df[new_column__count] = np.select(condition_list, choice_list, 0)
df

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM