Nic*_*lia 0 date dataframe pandas
我想根据日期列对数据框进行子集化,该列最初具有以下格式:
3/22/13
Run Code Online (Sandbox Code Playgroud)
在我将其转换为日期后:
df['date']=pd.to_datetime(df['date'], format='%m/%d/%y')
Run Code Online (Sandbox Code Playgroud)
我明白了:
2013-03-22 00:00:00
Run Code Online (Sandbox Code Playgroud)
现在我想用这样的子集:
df.loc[(df['date']>'2014-06-22')]
Run Code Online (Sandbox Code Playgroud)
但这要么给了我一个空的数据框或一个完整的数据框,那就是没有过滤。
有什么建议我可以让它发挥作用吗?
备注:我很清楚在其他论坛上也有人问过类似的问题,但由于我的日期列看起来不同,我无法找到解决方案。
首先,您必须将开始日期和最终日期转换为日期时间格式。然后你可以在 df.loc 中应用多个条件。不要忘记将您的修改重新分配给您的 df :
import pandas as pd
from datetime import datetime
df['date']=pd.to_datetime(df['date'], format='%m/%d/%y')
date1 = datetime.strptime('2013-03-23', '%Y-%m-%d')
date2 = datetime.strptime('2013-03-25', '%Y-%m-%d')
df = df.loc[(df['date']>date1) & (df['date']<date2)]
Run Code Online (Sandbox Code Playgroud)