如何使用自定义名称创建数据框

时间:2019-09-24 16:45:01

标签: python dataframe

我想知道如何使用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 

1 个答案:

答案 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']),您的原始代码将起作用,请记住,您将每个数据帧存储在字典中,然后按名称进行引用。