我正在写一段代码,它把大约100,000个文本文件放在一起,并添加丢失的数据。每次迭代调用pandas df都很慢,有更推荐的方法吗?
for root, dirs, files in os.walk(resultsDir):
for file in files:
if file.endswith('.txt'):
resultsFile = os.path.relpath(os.path.join(root, file))
df = pd.read_csv(resultsFile, delimiter='\t')
# parsePath data
df['path'] = resultsFile
df['resultsFile'] = file
pathLvls = resultsFile.split(os.sep)
df['sdCard'] = pathLvls[-3][:5]
df['site'] = pathLvls[-3][6:]
df['capture'] = pathLvls[-4]
if not os.path.isfile(resultsFile):
print(f' resultsFile {resultsFile} is missing')
if df.empty:
breakpoint()
print(f'{resultsFile} empty results file')
df['error'] = "empty results file"
else:
df2 = pd.concat([df2, df], ignore_index=True)
字符串
1条答案
按热度按时间s8vozzvw1#
解决方案是使用
threading
或asyncio
进行基于i/o的操作。下面是一个例子:
字符串
基本上,就像这样:
您需要使用
os.walk()
来填充列表等。