如何在 Pandas 数据框中搜索 dtype: object 的特定日期 (2010-12-01)?
How to search for a specific date(2010-12-01) which is of dtype: object in Pandas dataframe?
我有一个 pandas 系列 (df1['Dates']) 代表日期(没有时间)并且是对象数据类型:
df1['Dates'] = pd.to_datetime(df1['InvoiceDate']).dt.date
(发票日期为 dtype:datetime64[ns])
df1.Dates
0 2010-12-01
1 2010-12-01
2 2010-12-01
3 2010-12-01
4 2010-12-01
...
541904 2011-12-09
541905 2011-12-09
541906 2011-12-09
541907 2011-12-09
541908 2011-12-09
Name: Dates, Length: 541909, dtype: object
现在要在 df1['Dates'] 中搜索特定日期,使用“==”运算符说“2010-12-01”,我得到的输出是空的,尽管给定日期存在于数据集中:
df1[df1.Dates=="2010-12-01"]
我哪里做错了??或者有没有其他的搜索方式
您的相等运算符的右侧应与 df1['Dates'] 的元素 (dtype) 具有相同类型,这是您设置它的 datetime.date 方式。所以下面应该工作
import datetime
df1[df1['Dates'] == datetime.date(day = 1,month = 12,year = 2010)]
或
df1[df1['Dates'] == datetime.datetime.strptime('2010-12-01','%Y-%m-%d').date()]
我有一个 pandas 系列 (df1['Dates']) 代表日期(没有时间)并且是对象数据类型:
df1['Dates'] = pd.to_datetime(df1['InvoiceDate']).dt.date
(发票日期为 dtype:datetime64[ns])
df1.Dates
0 2010-12-01
1 2010-12-01
2 2010-12-01
3 2010-12-01
4 2010-12-01
...
541904 2011-12-09
541905 2011-12-09
541906 2011-12-09
541907 2011-12-09
541908 2011-12-09
Name: Dates, Length: 541909, dtype: object
现在要在 df1['Dates'] 中搜索特定日期,使用“==”运算符说“2010-12-01”,我得到的输出是空的,尽管给定日期存在于数据集中:
df1[df1.Dates=="2010-12-01"]
我哪里做错了??或者有没有其他的搜索方式
您的相等运算符的右侧应与 df1['Dates'] 的元素 (dtype) 具有相同类型,这是您设置它的 datetime.date 方式。所以下面应该工作
import datetime
df1[df1['Dates'] == datetime.date(day = 1,month = 12,year = 2010)]
或
df1[df1['Dates'] == datetime.datetime.strptime('2010-12-01','%Y-%m-%d').date()]