You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP MySQL:如何逐行统计满足条件的列数量

嘿,这个需求其实很好实现,我给你两种常用的方案,看你用哪种更顺手:

方案一:用Pandas处理(适合结构化表格数据)

如果你的数据是标准的表格格式,用Pandas来处理会非常高效,尤其是数据量较大的时候:

import pandas as pd

# 构造你的数据表(注意把原数据里的千分位逗号去掉,转成纯数值)
data = {
    'column1': [100, 7, 1],
    'column2': [49, 5, 65],
    'column3': [3, 51, 44],
    'column4': [1980, 500, 37]
}
# 设置行索引为用户名
df = pd.DataFrame(data, index=['user1', 'user2', 'user3'])

# 👉 核心逻辑:按行遍历,统计值<100的列数
# axis=1表示按行处理,(row < 100)会生成布尔数组,sum()把True转为1累加
result = df.apply(lambda row: (row < 100).sum(), axis=1)

# 输出你要的格式
for user, count in result.items():
    print(f"{user}:{count}")

小提示

如果你的原始数据里有1,980这种带千分位逗号的数值,记得先做格式转换:

# 去掉所有逗号并转为整数类型
df = df.replace(',', '', regex=True).astype(int)
方案二:纯Python实现(无需第三方库)

如果不想依赖任何第三方库,用原生的字典和循环就能搞定,适合小体量数据:

# 用字典存储每行数据(同样注意去掉千分位逗号)
user_data = {
    'user1': [100, 49, 3, 1980],
    'user2': [7, 5, 51, 500],
    'user3': [1, 65, 44, 37]
}

result = {}
# 遍历每个用户的数值列表
for user, values in user_data.items():
    count = 0
    for val in values:
        if val < 100:
            count += 1
    result[user] = count

# 输出结果
for user, count in result.items():
    print(f"{user}:{count}")

两种方法跑出来的结果都是你要的:user1:2、user2:3、user3:4,完美匹配需求~

内容的提问来源于stack exchange,提问作者follmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:31:28