根据日期格式的类型过滤熊猫列

时间:2018-03-19 16:54:06

标签: python-3.x pandas date datetime

我在数据框中有一个具有混合日期格式的列。如何根据不同的日期格式对其进行隔离。

例如,我想要这样的东西

df1 = dataframe [dataframe ['Cl_date']是'%d%b%y'] df2 = dataframe [dataframe ['Cl_date']是'%b%y]

请帮忙

2 个答案:

答案 0 :(得分:0)

将日期列转换为字符串,然后按字符串中的字符数过滤(假设格式的长度不同)。

# setup
import pandas as pd;
from datetime import datetime, timedelta;
today = datetime.now().date();
yesterday = today-timedelta(days=1)
yesterday = yesterday.strftime('%B-%y')
d = {'Date': [today,yesterday],'Value': [100,200]}
df = pd.DataFrame(columns=['Date','Value'],data=d)

# convert the column to string
df['Date'] = df['Date'].astype('str')

# filter by # of chars
# for %y-%m-%d
df1 = df.loc[df['Date'].str.len()==10]
# for %B-%y
df2 = df.loc[df['Date'].str.len()==8]

答案 1 :(得分:-1)

首先,确保您已按日期时间格式转换Cl_date列,如下所示:

df['Cl_date'] = pd.to_datetime(df['Cl_date'])

然后,使用select_dtypes功能,您可以选择日期格式的列。

df1 = df.select_dtypes(include=[np.datetime64])