Python 如何根据日期的月份删除表行?
我有一个来自csv文件的表格,其中包含格式为YYYY-MM-DD的各种数据的日期。我想知道如何删除12月至4月期间记录的数据。换句话说,我想删除月份不是12、01、02、03和04的行 我该怎么做 您只需执行以下操作:Python 如何根据日期的月份删除表行?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个来自csv文件的表格,其中包含格式为YYYY-MM-DD的各种数据的日期。我想知道如何删除12月至4月期间记录的数据。换句话说,我想删除月份不是12、01、02、03和04的行 我该怎么做 您只需执行以下操作: exclude_months = [12,1,2,3,4] df['Buoy 44017 Time'] = pd.to_datetime(df['Buoy 44017 Time']) # remove rows new_df = df[df['Buoy 44017 Time'
exclude_months = [12,1,2,3,4]
df['Buoy 44017 Time'] = pd.to_datetime(df['Buoy 44017 Time'])
# remove rows
new_df = df[df['Buoy 44017 Time'].dt.month.isin(exclude_months)]
以下是一种处理熊猫的方法:
import pandas as pd
from datetime import datetime
def date_filter(dates):
return [
datetime.strptime(date,"%Y-%m-%d").month not in (12,1,2,3,4)
for date in dates
]
df = pd.read_csv('my_file.csv')
selected_rows = df.loc[ date_filter(df['Date']) ]
使用dataframe loc方法过滤掉不需要的日期这段代码实际上与我所期望的相反;它将删除12月到4月之间有个月的行。但是,可以通过移除最后一行中的~轻松解决此问题。谢谢!