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

Python中变量值每次变更后如何存入数组?pandas城市统计场景问题

原代码问题

  1. 混淆了城市列表索引与数据集行索引,仅前24行能匹配到正确城市,后续行判断全部使用最后一个城市VILLAVICENCIO做匹配,统计结果错误
  2. 所有计数共用同一个变量,无法得到每个城市的单独统计值

实现1:循环遍历(易读易理解)

直接遍历已定义的城市列表,逐个统计符合条件的行数存入新列表即可:

import pandas as pd

# 你已定义的城市列表
ciudad=['ARMENIA', 'BARRANQUILLA', 'BOGOTA', 'BUCARAMANGA', 'BUENAVENTURA', 'CALI', 'CARTAGENA', 'CUCUTA', 'FLORENCIA', 'IPIALES', 'MANIZALES', 'MEDELLIN', 'MONTERIA', 'NEIVA', 'PASTO', 'PEREIRA', 'POPAYAN', 'RIOHACHA', 'SAN ANDRES', 'SANTA MARTA', 'SINCELEJO', 'TUNJA', 'VALLEDUPAR', 'VILLAVICENCIO']

# 初始化存储各城市统计结果的列表
cuenta_por_ciudad = []

for city in ciudad:
    # 统计当前城市满足【剩余有效期为0】的总条数
    valid_count = len(data[(data["CIUDAD"] == city) & (data["Vida Util Restante(per)"] == 0)])
    cuenta_por_ciudad.append(valid_count)

运行后cuenta_por_ciudad的元素顺序和ciudad列表的城市顺序一一对应,无需手动录入城市名称。


实现2:Pandas原生统计(效率更高,适合大数据量)

无需手写循环,调用pandas内置方法完成统计,运行速度比自定义循环更快:

# 先筛选所有剩余有效期为0的行,按城市分组计数
city_count = data[data["Vida Util Restante(per)"] == 0].groupby("CIUDAD").size()
# 按你指定的城市列表顺序返回结果,无符合记录的城市自动填充0
cuenta_por_ciudad = city_count.reindex(ciudad, fill_value=0).tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:06:03