我在数据框中有一个具有混合日期格式的列。如何根据不同的日期格式对其进行隔离。
例如,我想要这样的东西
df1 = dataframe [dataframe ['Cl_date']是'%d%b%y'] df2 = dataframe [dataframe ['Cl_date']是'%b%y]
请帮忙
答案 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])