以下代碼非常適合將多個 .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)
uj5u.com熱心網友回復:
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))
這會擴展通配符以查找所有以in*結尾的檔案。.csvbase_dir
uj5u.com熱心網友回復:
其中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)
uj5u.com熱心網友回復:
只需按照上一個答案中的指示替換它即可os.listdir(".")。os.listdir("csvFilesPath")我嘗試過這個
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415721.html
標籤:
