How to open my files in data_folder with pandas using relative path?

前端 未结 11 2332
庸人自扰
庸人自扰 2020-12-22 23:40

I\'m working with pandas and need to read some csv files, the structure is something like this:

folder/folder2/scripts_folder/script.py

folder/fol

相关标签:
11条回答
  • 2020-12-23 00:19

    You could use the __file__ attribute:

    import os
    import pandas as pd
    df = pd.read_csv(os.path.join(os.path.dirname(__file__), "../data_folder/data.csv"))
    
    0 讨论(0)
  • 2020-12-23 00:24

    You can always point to your home directory using ~ then you can refer to your data folder.

    import pandas as pd
    df = pd.read_csv("~/mydata/data.csv")
    

    For your case, it should be like this

    import pandas as pd
    df = pd.read_csv("~/folder/folder2/data_folder/data.csv")
    

    You can also set your data directory as a prefix

    import pandas as pd
    DATA_DIR = "~/folder/folder2/data_folder/"
    df = pd.read_csv(DATA_DIR+"data.csv")
    

    You can take advantage of f-strings as @nikos-tavoularis said

    import pandas as pd
    DATA_DIR = "~/folder/folder2/data_folder/"
    FILE_NAME = "data.csv"
    df = pd.read_csv(f"{DATA_DIR}{FILE_NAME}")
    
    0 讨论(0)
  • 2020-12-23 00:26

    For non-Windows users:

    import pandas as pd
    import os
    
    os.chdir("../data_folder")
    df = pd.read_csv("data.csv")
    

    For Windows users:

    import pandas as pd
    
    df = pd.read_csv(r"C:\data_folder\data.csv")
    

    The prefix r in location above saves time when giving the location to the pandas Dataframe.

    0 讨论(0)
  • 2020-12-23 00:30

    Try

    import pandas as pd
    pd.read_csv("../data_folder/data.csv")
    
    0 讨论(0)
  • 2020-12-23 00:32

    I was also looking for the relative path version, this works OK. Note when run (Spyder 3.6) you will see (unicode error) 'unicodeescape' codec can't decode bytes at the closing triple quote. Remove the offending comment lines 14 and 15 and adjust the file names and location for your environment and check for indentation.

    -- coding: utf-8 --

    """ Created on Fri Jan 24 12:12:40 2020

    Source: Read a .csv into pandas from F: drive on Windows 7

    Demonstrates: Load a csv not in the CWD by specifying relative path - windows version

    @author: Doug

    From CWD C:\Users\Doug\.spyder-py3\Data Camp\pandas we will load file

    C:/Users/Doug/.spyder-py3/Data Camp/Cleaning/g1803.csv
    

    """

    import csv
    
    trainData2 = []
    
    with open(r'../Cleaning/g1803.csv', 'r') as train2Csv:
    
      trainReader2 = csv.reader(train2Csv, delimiter=',', quotechar='"')
    
      for row in trainReader2:
    
          trainData2.append(row)
    
    print(trainData2)
    
    0 讨论(0)
  • 2020-12-23 00:34

    Pandas will start looking from where your current python file is located. Therefore you can move from your current directory to where your data is located with '..' For example:

    pd.read_csv('../../../data_folder/data.csv')
    

    Will go 3 levels up and then into a data_folder (assuming it's there) Or

    pd.read_csv('data_folder/data.csv')
    

    assuming your data_folder is in the same directory as your .py file.

    0 讨论(0)
提交回复
热议问题