首页 > 解决方案 > 在python中动态创建数据框

问题描述

下面是我正在读取两个文件并尝试为它们创建单独的数据帧的代码。我试图动态地实现这一点,以便我可以根据需要使用这些 df。这是我所做的代码。

    import pandas as pd
        commanFilePath = '\Projects\Pandas\Csv_Files\\'
        fileNametoImport = ['Employee.txt','Role.txt']
        listofdf =[]
        # load file to data frame
        for filename in fileNametoImport:
            fN,ext = filename.split('.')
            fN = 'df'+fN
            listofdf.append(fN)
            filewithpathname = commanFilePath + filename
            fN = pd.read_csv(filewithpathname,delimiter=',')
        print(fN)
        print(listofdf)

我想当我这样做时,print(listofdf[0])我应该得到我的第一个数据帧,即 dfEmployee。

标签: python-3.xpandas

解决方案


由于您希望 listofdf[0] 成为第一个数据帧,即 Employee.txt 的数据帧,因此 listofdf[0] 应该是pd.read_csv('\path\to\Employee.txt', delimiter=','). 名字dfEmployee其实无所谓。所以你需要将输出附加pd.read_csv到listofdf。

import pandas as pd
commanFilePath = '\Projects\Pandas\Csv_Files\\'
fileNametoImport = ['Employee.txt','Role.txt']
listofdf =[]
# load file to data frame
for filename in fileNametoImport:
    fN,ext = filename.split('.')
    fN = 'df'+fN # <--- is this needed?
    listofdf.append(fN) # <--- remove this
    filewithpathname = commanFilePath + filename
    fN = pd.read_csv(filewithpathname,delimiter=',') # <---- this is the dataframe
    listofdf.append(fN) # <--- append this

print(listofdf) #<-- should contain two dataframes now

推荐阅读