【发布时间】:2019-01-09 16:17:51
【问题描述】:
我有一个Dataframe,看起来像(例如)这样:
print(df)
date high low close
0 2008-01-01 15.540 15.540 15.54
1 2008-01-02 15.750 15.210 15.25
2 2008-01-03 15.450 14.950 15.02
3 2008-01-04 14.990 14.400 14.48
4 2008-01-05 14.890 14.400 14.78
5 2008-01-06 14.890 14.400 14.78
....
我想从Dataframe 中删除日期列包含周末日期的行。
date high low close
0 2008-01-01 15.540 15.540 15.54
1 2008-01-02 15.750 15.210 15.25
2 2008-01-03 15.450 14.950 15.02
3 2008-01-04 14.990 14.400 14.48
4 <-- has been removed since 1/05/2008 is a Saturday
5 <-- has been removed since 1/06/2008 is a Sunday
....
我试过了:
df = df[~df.date.dt.weekday_name.isin(['Saturday','Sunday']).any(0)]
但它不起作用。
【问题讨论】:
-
您不需要
any(0),只需使用df[~df.date.dt.weekday_name.isin(['Saturday','Sunday'])]。any(0)折叠为单个布尔值(可能是True),而您需要一个布尔值的向量/数组。 -
试试这个:
df = df[df.date.dt.weekday < 5] -
呃,感谢 jpp 的工作原理。
标签: python-3.x pandas datetime