Python 在循环中填充数据帧
是否有一种优雅的方式一次读取一个文件,进行一些预处理,然后合并到一个大数据帧中。 我的做法就是在这里。我相信这里可能有其他方法来消除变量Python 在循环中填充数据帧,python,pandas,Python,Pandas,是否有一种优雅的方式一次读取一个文件,进行一些预处理,然后合并到一个大数据帧中。 我的做法就是在这里。我相信这里可能有其他方法来消除变量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] ..............
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
您可以使用枚举
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])
您可以使用枚举
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)
您不需要在每次迭代时连接数据帧,因为
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)
好了,在循环中也不需要i和if子句。只需使用
outdf=concat([outdf,tdf])
。在第一次迭代中,它将使用空数据帧进行连接,因此它将返回相同的数据帧。非常感谢。好吧,你不需要在循环中使用i和if子句。只需使用outdf=concat([outdf,tdf])
。在第一次迭代中,它将使用空数据帧进行连接,因此它将返回相同的数据帧。非常感谢。这也会更快。这也会更快。