有没有办法缩短 Mac (Python) 上的文件路径并减少数据帧?

Is there a way to shorten a file path on Mac (Python) and lessen the dataframes?

我已经尝试使用 os.path 功能。

比如我有这个文件路径:

/Users/GSteve_105/Documents/sites/Docs/Experiment/file1.csv

我想将其缩短为

/file1.csv

这样我就可以使用 pd.read 模块来读取文件。例如,我想这样做:

df1 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file1.csv")
df2 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file2.csv")
df3 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file3.csv")
df4 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file4.csv")
df5 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file5.csv")
df6 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file6.csv")
df7 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file7.csv")
df8 = pd.read_csv("/Users/GSteve_105/Documents/sites/Docs/Experiment/file8.csv")

但是,显然有两件事妨碍了我:

  1. 文件路径名好长
  2. 我拥有的数据帧数量。我想将它们放在一起并“同时”阅读它们,这样我就不必遍历每一个并使代码更具可扩展性

有办法吗? 提前致谢!

os.path.join(os.path.split(r'/Users/GSteve_105/Documents/sites/Docs/Experiment/file1.csv')[1],'') 会做的。

如果您想进入当前目录,或者比方说当前目录的上一级目录,您可以使用:

import sys
sys.path.append('./')

简单的说,进入那个文件目录

sys.path.append('path/to/Experiment/')

以便在操作 csv 时可以像 somefunction("file1.csv") 一样引用它,而无需指定绝对路径。

您可以使用 for 循环来定义,而不是像那样手动定义变量,

并将变量附加到列表中。

df = []
amt = 8 # The amount of properly labeled csv files
for n in range(amt):
    d = pd.read_csv(f"/Users/GSteve_105/Documents/sites/Docs/Experiment/file{n+1}.csv")
    df.append(d)

想打df3就打df[3],想打df5就打df[5]

您还可以使用 glob 模块:

import glob

files = glob.glob("/Users/GSteve_105/Documents/sites/Docs/Experiment/file*.csv") # List all the csv file in the Experiment folder that begins with 'file'