我有225个文件夹,其中包含~107000.csv的,我想做一些转换,然后导入到一个已经创建的数据帧。你知道吗
Main Folder
|
--------------------------------
| | |
subfolder1 sub2 ... sub225
| | |
600 csv's 22 csv's 1400 csv's
我当前的代码只处理少量的文件(10k)。然而,对于10万个文件,它的速度会大大减慢,最终会使我的jupyter笔记本/chrome崩溃大约一半,我认为这是因为内存错误(代码也很慢)。我的机器有16GB内存。你知道吗
def data_loader(pair='XYZ'):
df = get_df()
path = r'D:\Sample\{}'.format(pair)
all_files = glob.glob(os.path.join(path, "*.csv"))
print(pair)
df_from_each_file = (pd.read_csv(f) for f in all_files)
dfnew = pd.concat(df_from_each_file, ignore_index=True)
# Perform data pre-processing that turns the 80k rows into 5 columns.
return df
for i in range(len(pairs)):
data_loader(pairs[i])
它为每个子文件夹输出5列,并将其添加到当前df中,因此总共有225x5个新列添加到现有df中。你知道吗
df
original col1 | col2 | subfolder1 cols1|2|3|4|5 .. subfolder225 cols1|2|3|4|5
有什么更好的方法来实现这一点?谢谢。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐