在for循环中创建名称不同的数据框-Python?

时间:2020-09-07 18:34:06

标签: python pandas dataframe for-loop

我正在为每年(1971-2017年)的数据创建一个数据框。我有一个用于创建数据帧的for循环,但它全都在一个循环中。我将如何制作它,以便每年创建一个单独的df?以下是我目前所拥有的。

for years in range(1971,2017):
        df = pd.read_csv('gene_%4.4d.txt'%years, sep='|', header=None, names=['PubMed ID','Title','Abstract','Affiliations','Pub Year','Pub Month','Pub Day','Journal'])

1 个答案:

答案 0 :(得分:1)

每次读取新文件时,您将覆盖df变量。为了避免这种情况,我建议在循环外初始化一个列表,并将每个新的DataFrame存储在其中:

all_dfs = []

for years in range(1971, 2017):
    df = pd.read_csv('gene_%4.4d.txt' % years, sep='|', header=None, names=['PubMed ID', 'Title', 'Abstract', 'Affiliations', 'Pub Year', 'Pub Month', 'Pub Day', 'Journal'])
    all_dfs.append(df)

现在all_dfs是所有DataFrame的列表。 (接下来要做的一件事是将它们全部合并到一个大的DataFrame中,例如pd.concat(all_dfs)