我有如下所示的代码:
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
答案 0 :(得分:1)
可能有一种更简洁的方法,但是您可以“尝试”将值计数分别分配给变量,如果不存在,则将其另存为NaN
import numpy as np
try:
ADO = d['ADO']
except:
ADO = np.nan
try:
Bunker = d['Bunker']
except:
Bunker = np.nan
等...
这样,即使csv文件中没有任何条目,代码也将运行,并且当您创建df时,缺少的值将仅为NaN,并且正确存储了其中的值