[英]Parsing csv files consisting of the header only using Python, Pandas
我正在嘗試使用pandas讀取多個csv文件的內容,並將其加載到pandas數據框中。
所有的csv文件都由標頭(第一行)組成,該標頭定義了列名,然后是數字數據。 我只對讀取數字數據感興趣,因此我使用了skiprows = [0]選項。
例如:
path = 'mypath'
file = 'example1.csv'
我的example1.csv是這樣的:
time varA varB
1.0 2.3 3.2
2.0 4.2 3.4
... ... ...
然后,我使用這段代碼:
array_list = []
for file in os.listdir(path):
df = pd.read_csv(file, skiprows=[0], header=None)
array_list.append(df.as_matrix())
直到我得到一個僅包含頭文件(僅一個原始文件)且不包含數據的文件,這才起作用,如下面的示例example2.cvs所示:
time varA varB
我得到了錯誤
EmptyDataError: No columns to parse from file
關於如何引入僅由頭組成的文件例外的任何建議,這並不意味着它為空?
非常感謝您的幫助,
MarcoC
如何使用try..except
呢?
array_list = []
for file in os.listdir(path):
try:
df = pd.read_csv(file, skiprows=[0], header=None)
array_list.append(df.as_matrix())
except EmptyDataError:
# empty file, skip
continue
這具有len(array_list) != len(os.listdir(path))
的缺點。 如果您實際上希望空數據幀避免這種情況,請使用header='infer'
,例如@sam建議:
array_list = []
for file in os.listdir(path):
df = pd.read_csv(file, header='infer')
array_list.append(df.as_matrix())
對於具有內容的文件
time varA varB
它返回
Empty DataFrame
Columns: [time varA varB]
Index: []
header ='infer'或header = 0應該可以解決問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.