簡體   English   中英

僅使用Python,Pandas解析由標頭組成的csv文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM