![](/img/trans.png)
[英]Combine selected column from multiple csv files from different folders to a single csv file
[英]Concatenate multiple csv files from different folders into one csv file in python
我正在嘗試將多個 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
如果沒有看到您的 CSV 文件,很難確定,但我之前遇到過這個問題,因為 CSV 格式異常。 CSV 解析器可能難以確定 CSV 文件、分隔符等的結構。
嘗試df = pd.read_csv(file, engine = 'python')
來自文檔:“C 引擎更快,而 python 引擎目前功能更完整。”
嘗試在讀取單個 CSV 文件時傳遞engine = 'python'
參數,看看是否成功讀取。 這樣,您可以將問題縮小到文件讀取或遍歷文件。
嘗試簡化您的代碼:
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)
此解決方案應該對您有吸引力:
import pandas as pd
import pathlib
data_dir = '/Users/thomasbryan/projetos/blocklist/files/'
out_dir = '.'
list_files = []
for filename in pathlib.Path(data_dir).glob('**/*.csv'):
list_files.append(filename)
df = pd.concat(map(pd.read_csv, list_files), ignore_index=True)
df.to_csv(pathlib.Path(out_dir) / 'combined_csv.csv', index=False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.