【发布时间】:2020-07-21 19:42:49
【问题描述】:
关于读取文件的问题,我需要您的帮助。
我有一些 csv 文件使用不同的分隔符 (;) 而不是 ,。一般来说,对于这些情况,我会这样做:
pd.read_csv('path/filename.csv', sep=';', engine='python')
对于那些没有问题的人:
pd.read_csv('path/filename.csv')
由于我有一个文件列表,我不知道是哪一个导致了错误,所以我需要稍微编辑一下下面的代码,以便在发生错误时包含这两种情况。 当前的错误是:
ParserError: Error tokenizing data. C error: Expected 3 fields in line 9, saw 9
我需要编辑以包含上述条件的代码如下:
import pandas as pd
from pathlib import Path
from os.path import join
import matplotlib.pyplot as plt
import glob
def create_dataset():
country='UK'
base_path = Path(''+country)
glob_pattern = str(base_path.joinpath("*.csv"))
all_csv_filenames = glob.glob(glob_pattern)
dataframes = {
(str(Path(filename).parent), str(Path(filename).stem)): pd.read_csv(
filename, sep=','
)
for filename in all_csv_filenames
}
data = pd.concat(dataframes, names=['Country', 'FileName', '_'],)
return data
感谢您的帮助
【问题讨论】:
-
请格式化您的代码。
-
尝试使用this SO post中描述的嗅探器