Python 筛选熊猫中两个日期之间的行

Python 筛选熊猫中两个日期之间的行,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一张有日期、销售额和利润的表。数据为10年的历史数据。现在,我想过滤每年1月1日至2月9日之间的销售额。如何操作?首先,您要确保您的日期是日期时间类型: df['Date'] = pd.to_datetime(df['Date']) 然后,您可以提取月份和天数,并使用loc进行过滤: month_day = df['Date'].dt.month * 100 + df['Date'].dt.day df.loc[month_day.between(101, 209)] 首先,您要确保您

我有一张有日期、销售额和利润的表。数据为10年的历史数据。现在,我想过滤每年1月1日至2月9日之间的销售额。如何操作?

首先,您要确保您的
日期
是日期时间类型:

df['Date'] = pd.to_datetime(df['Date'])
然后,您可以提取月份和天数,并使用loc进行过滤:

month_day = df['Date'].dt.month * 100 + df['Date'].dt.day

df.loc[month_day.between(101, 209)]

首先,您要确保您的
日期
是日期时间类型:

df['Date'] = pd.to_datetime(df['Date'])
然后,您可以提取月份和天数,并使用loc进行过滤:

month_day = df['Date'].dt.month * 100 + df['Date'].dt.day

df.loc[month_day.between(101, 209)]

与Quang Hoangs方法相比不那么简单,但可能更易于阅读/理解:

df[(df['Date'].dt.month == 1) | ((df['Date'].dt.month == 2) & (df['Date'].dt.day <= 9))]

df[(df['Date'].dt.month==1)|((df['Date'].dt.month==2)和(df['Date'].dt.day比Quang-Hoangs方法简单,但可能更可读/易懂:

df[(df['Date'].dt.month == 1) | ((df['Date'].dt.month == 2) & (df['Date'].dt.day <= 9))]

df[(df['Date'].dt.month==1)|((df['Date'].dt.month==2)和(df['Date'].dt.day您还可以使用对象的
dayofyear
属性:

给定的日期是数据类型datetime

df[df['Date'].dt.dayofyear < 41]
df[df['Date'].dt.dayofyear<41]
每年的前40天,1月的31天加上2月的9天

如果日期在索引中,则不需要dt访问器:

df[df.index.dayofyear < 41]
df[df.index.dayof year<41]

您还可以使用对象的
dayofyear
属性:

给定的日期是数据类型datetime

df[df['Date'].dt.dayofyear < 41]
df[df['Date'].dt.dayofyear<41]
每年的前40天,1月的31天加上2月的9天

如果日期在索引中,则不需要dt访问器:

df[df.index.dayofyear < 41]
df[df.index.dayof year<41]

您的数据是什么样子的?是否已经采用日期类型格式?能否共享一些现有代码供我们查看?您的数据是什么样子的?是否已经采用日期类型格式?能否共享一些现有代码供我们查看?谢谢。有帮助!谢谢。有帮助!谢谢。有帮助!有帮助!谢谢。有帮助!谢谢!有帮助!谢谢!有帮助!谢谢!有帮助!