我想了解每个国家/地区的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
此代码需要很长时间才能执行。感谢您的宝贵时间-任何建议都将非常有用。
似乎没有必要遍历每种组合的完整数据。我正在使用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] 删除。
我来说两句