我正在尝试使用df.loc函数在DataFrame的列中定位特定日期,但突然我开始收到KeyError。这种方法一直对我有用,但是不知何故,它会针对此特定问题引发KeyError。
我有以下代码:
import pandas as pd
from datetime import timedelta
import datetime
from datetime import datetime as dt
x = pd.read_csv('x_data.csv')
# x
# type date color
# 0 A 10/16/18 orange
# 1 B 10/15/18 red
# 2 C 10/12/18 blue
x['date'] = x['date'].apply(lambda xl: datetime.datetime.strptime(xl, '%m/%d/%y'))
x['date'] = x['date'].apply(lambda xl: datetime.datetime.strftime(xl, '%Y-%m-%d'))
d = '2018-10-15'
# x
# type date color
# 0 A 2018-10-16 orange
# 1 B 2018-10-15 red
# 2 C 2018-10-12 blue
然后我尝试使用df.loc通过以下行在d
列中找到date
:
x = x.loc[x['date']] == d
哪个返回错误:
KeyError: 'None of [0 2018-10-16\n1 2018-10-15\n2 2018-10-12\nName: date, dtype: object] are in the [index]'
我无法弄清楚这个问题,因为我对于各种数据集使用这种方法已有一段时间了,直到现在为止还从未遇到过问题。 谢谢您的帮助。