【问题标题】:How to make functions to repeat with different parameters in python?如何使函数在python中使用不同的参数重复?
【发布时间】:2021-09-01 00:32:06
【问题描述】:

我想让这个过程变得简单。

df_2001 = pop_grid_df_2020[["ISOCODE","geometry","CellXCoord","CellYCoord","count"]]
df_2001 = df_2001.assign(Year = 2001)
df_2001["min"] = np.nan

df_2002 = pop_grid_df_2020[["ISOCODE","geometry","CellXCoord","CellYCoord","count"]]
df_2002 = df_2002.assign(Year = 2002)
df_2002["min"] = np.nan

df_2003 = pop_grid_df_2020[["ISOCODE","geometry","CellXCoord","CellYCoord","count"]]
df_2003 = df_2003.assign(Year = 2003)
df_2003["min"] = np.nan

这个过程我需要做很多年。

list = [2001,2002,2003,2004,2006,2007,2008,2009,2011,2012,2013,2014,2016,2017,2018,2019]

我写了这样的代码。

list = [2001,2002,2003,2004,2006,2007,2008,2009,2011,2012,2013,2014,2016,2017,2018,2019]

def copy(list):
    for i in list
        df_i = pop_grid_df_2020[["ISOCODE","geometry","CellXCoord","CellYCoord","count"]]
        df_i = df.assign(Year = i)
        df_i = df["min"] = np.nan
        return df_i
    
copy(2001) = df_i

所以请告诉我解决方案。 提前致谢。

【问题讨论】:

  • 您可以添加运行此程序时看到的具体错误或错误吗?看起来您在 for 循环中缺少分号,请在末尾添加一个分号:for i in list:。此外,使用 python 关键字作为变量名通常是一个坏主意,请考虑将 list` 重命名为 year_list

标签: python function for-loop repeat


【解决方案1】:

试试:

year_list = [2001,2002,2003,2004,2006,2007,2008,2009,2011,2012,2013,2014,2016,2017,2018,2019]

def copy(year_list):
    dfs = {}
    for i in year_list:
        df_i = pop_grid_df_2020[["ISOCODE","geometry","CellXCoord","CellYCoord","count"]]
        df_i = df.assign(Year = i)
        df_i = df["min"] = np.nan
        dfs[i] = df_i
    return dfs

现在您的字典 dfs 将包含相应年份的所有数据集。请确保不要对变量使用关键字(列表是关键字)。有关 python 编码的最佳实践和指南,请参阅 https://www.python.org/dev/peps/pep-0008/

【讨论】:

    猜你喜欢
    • 2018-05-11
    • 2018-08-05
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多