如何优化此Python代码?

歧义9

我想了解每个国家/地区Year价值平均值IndicatorsCode

import numpy as np
import pandas as pd
datos = pd.read_csv("suramerica.csv")

media = list()
agricultura = list()
flag=0

paises = np.array(['Antigua and Barbuda','Argentina','Chile','Colombia'])
indicadores_agricultura = np.array(['EG.ELC.ACCS.RU.ZS','EG.NSF.ACCS.RU.ZS'])

for i in paises:
    for j in indicadores_agricultura:
        for k in range(len(datos)):
            if i==datos['CountryName'][k] and j==datos['IndicatorCode'][k]:
                flag=1
                media.append(datos['Year'][k])
    if flag==1:
        agricultura.append(np.array([i,np.mean(media)]))
        del media[:]
        flag=0
pd.DataFrame(agricultura,columns=['Paises','Agricultura y Desarrollo Rural'])

这是结果的DataFrame:

输出数据

如果您需要访问csv:Suramerica.csv

此代码需要很长时间才能执行。感谢您的宝贵时间-任何建议都将非常有用。

Manu Singhal

似乎没有必要遍历每种组合的完整数据。我正在使用dict对象保存所需的信息。然后使用该值计算np.mean。这将大大提高执行速度。这是代码:

import numpy as np
import pandas as pd
datos = pd.read_csv("suramerica.csv")

agricultura = list()

output = {}


paises = np.array(['Antigua and Barbuda','Argentina','Chile','Colombia'])
indicadores_agricultura = np.array(['EG.ELC.ACCS.RU.ZS','EG.NSF.ACCS.RU.ZS'])


for k in range(len(datos)):
    cn = datos['CountryName'][k]
    indicator_code = datos['IndicatorCode'][k]
    # change1
    if cn not in output.keys():
            output[cn] = []
    if cn in paises and indicator_code in indicadores_agricultura:
        year = datos['Year'][k]

for o in output:
    # change2
    media = output.get(o)
    if not media:
        media = 0.0
    agricultura.append(np.array([o,np.mean(media)]))

output2 = pd.DataFrame(agricultura,columns=['Paises','Agricultura y Desarrollo Rural'])
print(output2)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何优化我的代码以处理此特殊事件

来自分类Dev

如何优化此功能

来自分类Dev

Python-iptables如何优化代码

来自分类Dev

如何优化此Haskell限价单(包括代码,报告,图形)?

来自分类Dev

如何优化此UDF

来自分类Dev

此代码如何优化缩小?

来自分类Dev

如何优化此代码以这种格式打印?

来自分类Dev

如何优化此查询?

来自分类Dev

如何优化此sql插入php代码?

来自分类Dev

如何提高此Python代码的性能?

来自分类Dev

如何使此python代码块简短高效

来自分类Dev

我如何优化此python循环?

来自分类Dev

我如何优化此Codewars C ++代码?

来自分类Dev

如何优化此代码以检查重复项和缺失值?

来自分类Dev

VBA-Excel:如何优化此代码?

来自分类Dev

如何使用ARM NEON优化此代码?

来自分类Dev

Python-iptables如何优化代码

来自分类Dev

如何在Rails中优化此代码?

来自分类Dev

如何优化此Qt代码(QByteArray转换)?

来自分类Dev

如何优化此代码(计数排序)

来自分类Dev

如何优化此简单的Matlab代码?

来自分类Dev

如何优化此PHP / JS代码

来自分类Dev

如何优化此代码?

来自分类Dev

如何使用javascript优化此代码?

来自分类Dev

如何优化此查询?

来自分类Dev

未来几年如何优化此asp.net代码?

来自分类Dev

我如何优化此Java代码?

来自分类Dev

如何优化此Python代码?

来自分类Dev

如何优化此android代码?