我有一个来自csv文件的表格,其中包含格式为YYYY-MM-DD的各种数据的日期。我想知道如何删除12月到4月这几个月内记录的数据。换句话说,我要删除月份不是12、01、02、03和04的行。
我该怎么做?
答案 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方法过滤掉不需要的日期