python - 如何在定义自己的函数时迭代列表中的条目
问题描述
我正在尝试定义具有这些目标的功能。
- 一个数据框
df
- 国家/地区列表(可以假设所有国家/地区都可以在
location
DataFrame 的列中找到)cl
- 一个字符串(可以假设是一个列(除了位置),它将在 DataFrame 中找到。
column
该函数应返回给定国家列表的给定指标的平均值。通俗地说。我希望该功能能够将每个国家/地区的给定价值拉回所column
提到的内容。然后列表中的所有条目,
如果这是一个列表,则sum
除以len
g7 = ['United States', 'Italy', 'Canada', 'Japan', 'United Kingdom', 'Germany', 'France']
到目前为止,这是我的代码:
def countries_average(df,cl,column):
average = []
for country in enumerate(cl):
x = df.loc[df["location"] == country, column]
average.append(x)
y = sum(average)/len(average)
return average
相反,它从列表中的第一个条目返回一行。当其中一个条目column
是total_deaths
:
[28543 127410.0
Name: total_deaths, dtype: float64]
遍历此列表并average
成功添加到列表的任何帮助。我试过range(len(cl))
了,但这也没有帮助。任何帮助,将不胜感激。
解决方案
我认为这应该有效:
def countries_average(df,cl,column):
return df[df['location'].isin(cl)][column].mean()
推荐阅读
- python-3.x - 从父类调用子类方法;聚合,继承还是其他?
- c# - 错误无法转换 IEnumerable
到 IEnumerable - php - 使用适用于 SQL Server 的 ODBC 驱动程序的语法错误
- sql - SQL - 引用内容中特定位置的表?
- javascript - 可以在没有 google recaptcha v2 验证的情况下提交联系表
- r - 当数据元素出现在列组中时,将按多列分组并汇总的 R 代码
- r - 如何根据R中另一个表中的日期返回查询中的列
- python-3.x - 用户输入代码返回错误响应
- python - 更新现有行以插入 json 数组 - postgresql
- angular - 当不需要返回时我如何执行可观察的