使用CSV文件时出现数据帧键错误

2024-05-19 19:18:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下代码:

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'])

由于并非所有csv文件都同时包含“ADO”、“Bunker”、“LSFO”等,因此出现了KeyError。你知道吗

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

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

这样*.csv中的任何内容(可以是LSFO、ADO、Bunker等)都会在数据帧中计数。你知道吗

谢谢!:D个


Tags: csvdftypecountglobadoperfuel
1条回答
网友
1楼 · 发布于 2024-05-19 19:18:24

可能有一种更简洁的方法来实现这一点,但是您可以“尝试”将值计数单独赋给一个变量,如果它不存在,则将其另存为NaN

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

等等。。。你知道吗

这样,即使csv文件中没有条目,代码也会运行,并且当您生成df时,缺少的值将只是NaN,并且存在的值将被正确存储

相关问题 更多 >