首页 > 解决方案 > 使用 pandas 读取 CSV 时出现 KeyError

问题描述

我有一个 1200 万行和 9 个列的 CSV 文件。

我得到一个Keyword错误不是一个MemoryError,不是一个重复的问题。

我需要2nd lowest rate为每个zipcode.

我已经读过它来处理来自 CSV 文件的大数据集,您需要分块读取它们并将代码应用于每个块。

我有这个:

import pandas as pd
import csv


for df in pd.read_csv('slcsp/new_df.csv', sep='\t', iterator=True, chunksize=1000):
        df.groupby('zipcode').rate.nsmallest(2).reset_index().drop('level_1',1) \
        .drop_duplicates(subset=['zipcode'], keep='last')

但出现错误:

KeyError : 'zipcode' #但是有一列叫做zipcode

我检查过,有一个名为zipcode.

Traceback (most recent call last):
  File "slcsp/slcsp.py", line 19, in <module>
    df.loc[df.groupby('zipcode').rate.rank(method='first').eq(2),['zipcode','rate']]
  File "D:\virtual_envs\web_scrapping\lib\site-packages\pandas\core\generic.py", line 7632, in groupby
    observed=observed, **kwargs)
  File "D:\virtual_envs\web_scrapping\lib\site-packages\pandas\core\groupby\groupby.py", line 2110, in groupby
    return klass(obj, by, **kwds)
  File "D:\virtual_envs\web_scrapping\lib\site-packages\pandas\core\groupby\groupby.py", line 360, in __init__
    mutated=self.mutated)
  File "D:\virtual_envs\web_scrapping\lib\site-packages\pandas\core\groupby\grouper.py", line 578, in _get_grouper
    raise KeyError(gpr)
KeyError: 'zipcode'

标签: pythonpandas

解决方案


推荐阅读