首页 > 解决方案 > 如何使用循环来自动执行重复性任务?

问题描述

我有一个创建最终数据帧的函数,需要将此函数应用于 10 个不同的数据帧。有没有办法使用循环来自动执行此操作,而不是一个一个地编写数据框名称?

def table_all(df,sales_date):
  df1=df.loc[df['date']==sales_date]
  ### more code##
  df1.fillna(0,inplace=True)
  return df1

sales1 = table_all(df,sales_date1)
sales2 = table_all(df,sales_date2)
sales3 = table_all(df,sales_date3)
##### more code ####
sales10 = table_all(df,sales_date10)

我希望使用如下所示的循环,但它不起作用。任何想法将不胜感激。

for x in range(1,11):
   sales+str(x)=table_all(df, sales_date+str(x)) 

标签: python-3.xpandasnumpy

解决方案


首选使用 adict来存储结果:

sales = {}
for x in range(1, 11):
    sales[x] = table_all(df, globals()["sales_date{}".format(x)]

这里几乎相同的问题


推荐阅读