基于属性的熊猫数据框拖放行

时间:2020-01-21 20:54:07

标签: python-3.x pandas

我有一个带有日期对象的熊猫数据框。我想删除某些年份和月份的行,比如说2月。使用Python的方式是什么?

use Illuminate\Support\Facades\Log;

Log::channel('stderr')->info('Something happened!');

似乎输入过多,并留下了NaN值。

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

如果我尝试访问系列中所有对象的属性,则会收到错误消息。

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'

1 个答案:

答案 0 :(得分:0)

使用dt访问器,但它要求列的类型为pd.Timestamp

df = pd.DataFrame(['2020-01-01','2020-02-02','2020-03-03','2020-04-04'],columns=['dates'])
df['dates'] = pd.to_datetime(df['dates']) # removed the .dt.date

# Remove rows whose month are Feb, Mar or Apr, in 2018 & 2019 only
df[~(df['dates'].dt.month.isin([2,3,4]) & df['dates'].dt.month.isin(2018, 2019))]