Pandas 使用 CSV 文件时数据帧出现 KeyError

Pandas dataframe KeyError while working with CSV files

我有如下所示的代码:

for filename in glob.glob('/Users/jacob/Desktop/MERS/new/NOT COAL/gensets/statistics_per_lgu/per_lgu_files/*.csv'):


    # For fuel consumption
    count = df_csv['Fuel Type_Jundy'].count()
    aa = df_csv['Fuel Type_Jundy']
    d = aa.value_counts()

    ADO = d['ADO']
    Bunker = d['Bunker']
    LSFO = d['LSFO']
    IFO = d['IFO']
    LPG = d['LPG']


    fuel_type = pd.DataFrame({'count': count, 'ADO':ADO, 'Bunker':Bunker, 'LSFO':LSFO, 'IFO':IFO, 'LPG':LPG},
                             index=['fuel_type'])

发生 KeyError,因为并非所有 csv 文件同时包含 'ADO'、'Bunker'、LSFO 等。

我该怎么做才能得到这个数据框

  fuel_type = pd.DataFrame({'count': count, 'ADO':ADO, 'Bunker':Bunker, 'LSFO':LSFO, 'IFO':IFO, 'LPG':LPG},
                         index=['fuel_type'])

使得 *.csv 中的任何内容(无论是 LSFO、ADO、Bunker 等)在数据帧中都有其计数。

谢谢! :D

可能有 cleaner/shorter 方法可以做到这一点,但您可以 'try' 将值计数单独分配给一个变量,如果它不存在,则将其保存为 NaN

import numpy as np
try:
    ADO = d['ADO']
except:
    ADO = np.nan
try:
    Bunker = d['Bunker']
except:
    Bunker = np.nan

等...

这样,即使 csv 文件中没有条目,代码也会 运行,并且当您创建 df 时,缺失值将只是 NaN,并且那里的值将是正确的存储