【发布时间】:2017-04-07 20:34:18
【问题描述】:
我在 Python 2.5 和 pandas 版本 0.9.0 下工作,需要从 DataFrame 中删除一系列日期。
我使用以下代码执行此操作:
import pandas as pd
import numpy as np
import datetime
date1 = datetime.datetime(2009,06,01,10,0)
date2 = datetime.datetime(2009,06,02,05,00)
dates = pd.date_range(start=date1,end=date2,freq="30min")
df = pd.DataFrame(np.random.rand(len(dates), 1)*1500, index=dates, columns=['Power'])
date3 = datetime.datetime(2009,06,01,16,0)
date4 = datetime.datetime(2009,06,01,23,0)
df1 = df[df.index <= date3]
df2 = df[df.index >= date4]
df_new = pd.concat([df1,df2])
有没有更好的方法来获得相同的结果?
我期待这样的事情会起作用:
df_new2 = df[df.index <= date3 | df.index >= date4]
但是我收到以下错误:
TypeError: unsupported operand type(s) for |: 'datetime.datetime' and 'DatetimeIndex'
【问题讨论】:
-
在每个条件周围加上括号:df_new2 = df[(df.index = date4)]
标签: python datetime pandas dataframe