Python For循环在多个数据帧中添加列

Python For循环在多个数据帧中添加列,python,for-loop,Python,For Loop,晚上好,, 首先,我要说的是,我的编码之旅还很早。目前正在为熊猫项目使用大量来自政府数据的excel表格。每一张都代表一年。我试图在查看整个列表之前向每个数据帧添加一列,以便知道每个点的数据来自哪一年。目前,代码如下所示: ''' df10 = pd.read_excel(r'C:\Market research\national_m2010_dl.xls') df11 = pd.read_excel(r'C:\Market research\national_m2011_dl.xls') d

晚上好,, 首先,我要说的是,我的编码之旅还很早。目前正在为熊猫项目使用大量来自政府数据的excel表格。每一张都代表一年。我试图在查看整个列表之前向每个数据帧添加一列,以便知道每个点的数据来自哪一年。目前,代码如下所示:

'''

df10 = pd.read_excel(r'C:\Market research\national_m2010_dl.xls')
df11 = pd.read_excel(r'C:\Market research\national_m2011_dl.xls')
df12 = pd.read_excel(r'C:\Market research\national_m2012_dl.xls')
df13 = pd.read_excel(r'C:\Market research\national_m2013_dl.xls')
df14 = pd.read_excel(r'C:\Market research\national_m2014_dl.xlsx')
df15 = pd.read_excel(r'C:\Market research\national_m2015_dl.xlsx')
df16 = pd.read_excel(r'C:\Market research\national_m2016_dl.xlsx')
df17 = pd.read_excel(r'C:\Market research\national_m2017_dl.xlsx')
df18 = pd.read_excel(r'C:\Market research\national_m2018_dl.xlsx')
df19 = pd.read_excel(r'C:\Market research\national_m2019_dl.xlsx')
df10['Year'] = '2010'
df11['Year'] = '2011'
df12['Year'] = '2012'
df13['Year'] = '2013'
df14['Year'] = '2014'
df15['Year'] = '2015'
df16['Year'] = '2016'
df17['Year'] = '2017'
df18['Year'] = '2018'
df19['Year'] = '2019'

'''
然而,我确信有一种更干净的方法可以做到这一点,我想知道是否有更好的方法。我最初尝试了类似以下内容的For循环:

'''

for num in range(10,20):
  df+str(num)['Year'] = '20'+str(num)

'''
但是我没有运气。想法?

试试这个:

df_dic = dict()

for n in range(10,20): #remember, the second number in range is exclusive
    year = f"20{n}"
    df = pd.read_excel(f'C:\Market research\national_m{year}_dl.xls')
    df["Year"] = year
    df_dic[year] = df


    

而不是使用df10,df11,。。。您可以使用df[10]、df[11]、,。。。这使得代码非常简单

for num in range(10,20):
  df[num] = pd.read_excel(r'C:\Market research\national_m20'+str(num)+'_dl.xlsx')
  df[num]['Year'] = '20'+str(num)


@在海边漫步没问题!请将其标记为已回答=]