Jupyter Notebook 指定用于连接多个 .csv 文件的目录路径

Jupyter Notebook specify path to directory for concatenation of multiple .csv files

以下代码非常适合将多个 .csv 文件合并为一个文件。所有这些 .csv 文件都位于同一目录中。问题是它只有在我的当前文件与那些多个 .csv 文件位于同一目录中时才有效。我尝试了不同的语法来指定这些多个 .csv 文件所在目录的路径,但没有成功。我想知道我应该在下面的代码中在哪里指定 .csv 文件目录的路径。顺便说一句,我在 Jupyter Notebook 中工作:

import pandas as pd
import os

filepaths = [f for f in os.listdir(".") if f.endswith('.csv')]
df = pd.concat(map(pd.read_csv, filepaths)

os.listdit(dir) 列出路径 dir 中的文件。在您的示例中,您有 dir='.',它对应于当前工作目录(您 运行 脚本所在的目录)。您可以将此变量更改为 .csv 文件所在的目录。

import pandas as pd
import os

base_dir = os.path.join('path', 'to', 'files')
filepaths = [f for f in os.listdir(base_dir) if f.endswith('.csv')]
df = pd.concat(map(pd.read_csv, filepaths)

带通配的较慢版本

您可以通过通配来避免使用 endswith()

import pandas as pd
import os
import glob

base_dir = os.path.join('path', 'to', 'files')
filepaths = [f for f in glob.glob(f'{base_dir}*.csv')]
df = pd.concat(map(pd.read_csv, filepaths))

这将扩展通配符 * 以查找 base_dir 中以 .csv 结尾的所有文件。

os.listdir中,"."表示当前目录。

您可以指定 os.path.join('.', 'subdir', 'subsubdir') 来列出 subdir/subsubdir/ 中的文件。

完整代码。

import pandas as pd
import os

filepaths = [f for f in os.listdir(os.path.join('.', 'subdir', 'subsubdir')) if f.endswith('.csv')]
df = pd.concat(map(pd.read_csv, filepaths)

只需将 os.listdir(".") 替换为 os.listdir("csvFilesPath"),如前一个答案所示即可。我试过了