【发布时间】:2020-01-22 05:09:38
【问题描述】:
我有一个带有日期对象的 pandas 数据框。我想删除某些年份和月份的行,比如说二月。 Pythonic 的方法是什么?
df = pd.DataFrame(['2020-01-01','2020-02-02','2020-03-03','2020-04-04'],columns=['dates'])
df['dates'] = pd.to_datetime(df['dates']).dt.date
这似乎输入太多,并留下一个 NaN 值。
df["dates"] = pd.Series([date for date in df["dates"].values if date.month!=2]
dates
0 2020-01-01
1 2020-03-03
2 2020-04-04
3 NaN
如果我尝试访问系列中所有对象的属性,则会收到错误消息。
df = df.drop(df[df.dates.month==2].index)
AttributeError: 'Series' object has no attribute 'month'
与范围比较似乎输入太多,我不知道如何组合条件。
df = df.drop(df[df.dates >= pd.to_datetime('2020-02-01') and df.dates < pd.to_datetime('2020-03-01')].index)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
【问题讨论】:
标签: python-3.x pandas