在循环中填充数据帧

2024-06-28 19:36:49 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种优雅的方法一次读取一个文件,做一些预处理,然后合并成一个大数据帧。 我就是这样做的。我确信这里可能有其他方法来摆脱变量i

i=0
outdf = DataFrame()
for myfile in myfiles:
    tdf = read_csv(myfile) #Read
    #Do some annotations 
    tdf['Class'] = os.path.basename(myfile).split[0]
    ..............
    #-----------------
    if i == 0:
        outdf = tdf
    else:
        outdf = concat([outdf, tdf])
    i = i +1 

Tags: 文件csv数据方法indataframeforread
2条回答

可以使用枚举

    outdf = DataFrame()
    for i, myfile in enumerate(myfiles):
       tdf = read_csv(myfile)
       tdf['Class'] = os.path.basename(myfile).split[0]
       if i == 0:
           outdf = tdf
       else:
           outdf = concat([outdf, tdf])

您不需要在每次迭代中连接数据帧,因为concat可以连接多个数据帧。只需将每个单独的数据帧存储在一个列表中,并在最后连接起来

outdf = []
for myfile in myfiles:
    tdf = read_csv(myfile)
    #Do some annotations 
    tdf['Class'] = os.path.basename(myfile).split[0]
    ..............
    #        -
    outdf.append(tdf)

outdf = concat(outdf)

相关问题 更多 >