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")
,如前一个答案所示即可。我试过了
以下代码非常适合将多个 .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")
,如前一个答案所示即可。我试过了