我正在嘗試將多個 csv 檔案連接成一個檔案(大約 30 個檔案)。所有 csv 檔案都位于不同的檔案夾中。
但是,我在將所有檔案附加在一起時遇到錯誤: OSError: Initializing from file failed
這是我的代碼:
import pandas
import glob
path = 'xxx'
target_folders=['Apples', 'Oranges', 'Bananas','Raspberry','Strawberry', 'Blackberry','Gooseberry','Liche']
output ='yyy'
path_list = []
for idx in target_folders:
lst_of_files = glob.glob(path idx '\\*.csv')
latest_files = max(lst_of_files, key=os.path.getmtime)
path_list.append(latest_files)
df_list = []
for file in path_list:
df = pd.read_csv(file)
df_list.append(df)
final_df = df.append(df for df in df_list)
combined_csv = pd.concat([pd.read_csv(f) for f in latest_files])
combined_csv.to_csv(output "combined_csv.csv", index=False)
OSError Traceback (most recent call last)
<ipython-input-126-677d09511b64> in <module>
1 df_list = []
2 for file in latest_files:
----> 3 df = pd.read_csv(file)
4 df_list.append(df)
5 final_df = df.append(df for df in df_list)
OSError: Initializing from file failed
uj5u.com熱心網友回復:
嘗試簡化您的代碼:
import pandas as pd
import pathlib
data_dir = 'xxx'
out_dir = 'yyy'
data = []
for filename in pathlib.Path(data_dir).glob('**/*.csv'):
df = pd.read_csv(filename)
data.append(df)
df = pd.concat(df, ignore_index=True)
df.to_csv(pathlib.Path('out_dir') / 'combined_csv.csv', index=False)
uj5u.com熱心網友回復:
沒有看到您的 CSV 檔案很難確定,但我之前遇到過格式例外的 CSV 的這個問題。CSV 決議器可能難以確定 CSV 檔案、分隔符等的結構。
嘗試 df = pd.read_csv(file, engine = 'python')
來自檔案:“C 引擎速度更快,而 Python 引擎目前功能更完整。”
嘗試engine = 'python'在讀取單個 CSV 檔案時傳遞引數,看看是否能成功讀取。這樣您就可以將問題縮小到檔案讀取或遍歷檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/386367.html
上一篇:如何從csv檔案中洗掉雙引號
