我想知道如何使用for循环为每个数据帧分配不同的名称。 下面,我阅读了所有数据框并确定了名称,每个国家都有两个数据框。
years = ['2015', '2016']
nations = ['ITA', 'SPA']
path_list = []
name_list = []
for year in years:
for nation in nations:
path_list.append('D://Desktop//mydata//'+year+'//'+nation+'.csv')
for path in path_list:
data = pd.read_csv(percorso, usecols=['Date', 'Name'])
name_df = ('df_' + path[-12:-8] + '_' + path[-6:-4])
name_list.append(name_df)
从此脚本中,我得到一个列表,其中包含要分配给相应4个数据帧的所有名称:
name_list = ['df_2015_I1', 'df_2015_I2', 'df_2016_I1', 'df_2016_I2']
现在我们要解决这个问题,我尝试将名称分配给数据框,但是当我尝试在循环外引用具有新名称的数据框时,我找不到它
df = {}
for name in name_list:
df[name] = pd.DataFrame()
df[name] = df[name].append(data, ignore_index=True)
print(df_2015_I1) #ERROR NOT FOUND
答案 0 :(得分:1)
尝试
df = {}
for name in name_list:
df[name] = pd.DataFrame(data, ignore_index=True)
print(df['df_2015_I1'])
我认为,如果您添加了print(df ['df_2015_I1']),您的原始代码将起作用,请记住,您将每个数据帧存储在字典中,然后按名称进行引用。