我有以下两个数据框:
import pandas as pd
df = pd.DataFrame([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]],
index = [0, 0.25, 0.50, 0.75, 1],
columns = [0, 0.25, 0.50, 0.75, 1])
df_cross = pd.DataFrame([[0.0, 0.25],
[0.0, 0.75],
[0.5, 1]],
columns = ['indexes_to_keep',
'cols_to_keep'])
Run Code Online (Sandbox Code Playgroud)
df:
0.00 0.25 0.50 0.75 1.00
0.00 0 0 0 0 0
0.25 0 0 0 0 0
0.50 0 0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用shutil.move. 然而,这个过程需要很长时间才能完成。这些操作中通常会出现文件过多(接近 2,000 个)的情况,这些文件的总大小超过 1TB。
我查看了shutil.move文档,并解释说它shutil.move背后使用了复制功能(我想这就是过程如此缓慢的原因):
Shutil.move(src, dst, copy_function=copy2)
递归地将文件或目录 (src) 移动到另一个位置 (dst) 并返回目标。
如果目标是现有目录,则 src 会移动到该目录内。如果目标已经存在但不是目录,则它可能会被覆盖,具体取决于 os.rename() 语义。
如果目标位于当前文件系统上,则使用 os.rename()。否则,使用 copy_function 将 src 复制到 dst,然后删除。对于符号链接,将在 dst 中或作为 dst 创建一个指向 src 目标的新符号链接,并且 src 将被删除。
如果给出了 copy_function,它必须是一个带有两个参数 src 和 dst 的可调用函数,并且如果无法使用 os.rename() 则将用于将 src 复制到 dst。如果源是目录,则调用 copytree(),并向其传递 copy_function()。默认的copy_function是copy2()。使用 copy() 作为 copy_function 可以在无法复制元数据时成功移动,但代价是不复制任何元数据。
我已经尝试在文档中提供的复制功能之间进行更改shutil.move,但这并没有改善移动文件的时间。
当我尝试使用 自行移动文件时ctrl + X,文件会立即移动。有人知道是否有一种替代方法可以shutil.move使用,它具有与命令相同的性能ctrl + X?
提前致谢。
编辑
我将所有要移动的文件放入一个文件夹中,然后执行shutil.move,所以我的代码只是:
src_folder = 'C:/Users/sim/Documents/files_to_move' …Run Code Online (Sandbox Code Playgroud)