如何基于日期的月份删除表行?

时间:2020-09-28 15:03:32

标签: python python-3.x pandas

我有一个来自csv文件的表格,其中包含格式为YYYY-MM-DD的各种数据的日期。我想知道如何删除12月到4月这几个月内记录的数据。换句话说,我要删除月份不是12、01、02、03和04的行。

我该怎么做?

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以轻松地做到:

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)]

答案 1 :(得分:1)

这是用熊猫做的一种方式:

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方法过滤掉不需要的日期