[英]How to import several csv files from a folder, within a multiplatform environment
我希望 Python 導入一個文件夾中的多個 CSV 文件並將它們連接起來。 當我在 Mac 和 Windows 上工作時,我需要一個適用於兩者的解決方案。 另外,我需要 Python 以特定方式讀取 CSV:分隔方式;
這是我目前的情況,我必須在代碼中手動添加文件:
import pandas as pd
loading_files = Path("Loading Files/")
loading_feb01 = pd.read_csv(loading_files / "Loading FEB 01.csv.csv", sep = ';', header = 0)
loading_feb02 = pd.read_csv(loading_files / "Loading FEB 02.csv.csv", sep = ';', header = 0)
loading_feb03 = pd.read_csv(loading_files / "Loading FEB 03.csv.csv", sep = ';', header = 0)
loading_feb04 = pd.read_csv(loading_files / "Loading FEB 04.csv.csv", sep = ';', header = 0)
loading_feb_raw = [loading_feb01, loading_feb02, loading_feb03,
loading_feb04]
loading_feb = pd.concat(loading_feb_raw)
我想要一種簡單的方法來導入所有以“加載”開頭的文件,用分號正確讀取,然后連接。 最重要的是,相同的代碼是否也適用於 Excel 文件(我還想添加一些其他代碼)?
我找到了這段代碼並且能夠導入很多文件但無法獲得 sep=';' 上班:
df = pd.concat([pd.read_csv(f) for f in glob.glob('loading*.csv')], ignore_index = True)
知道我做錯了什么嗎?
我只是通過將其他一些答案與此結合來解決它
loading = pd.concat([pd.read_csv(f, delimiter=";") for f in loading_files.glob('Loading*.csv')], ignore_index = True)
os.listdir()
將返回目錄中所有文件的列表。 只需遍歷名稱,檢查名稱是否為.endswith('.csv')
並動態打開它
directory = "Loading Files/"
loading_feb_raw = []
# Iterate over files in directory
for file in os.listdir(directory):
# Only consider files of form "Loading*.csv"
if file.startswith("Loading") and file.endswith(".csv"):
csv = pd.read_csv(file, sep=';', header=0)
# Add read csv to container
loading_feb_raw.append(csv)
# Concatenate contents of container
loading_feb = pd.concat(loading_feb_raw)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.