根据条件删除行
drop rows based on condition
我只想保留时间在同年 7 月 4 日到 5 月 24 日之间的行,所以我使用了以下代码:
def fix_time(data):
12 data['timestamp'] = pd.to_datetime(data['timestamp'], format="%d-%m-%Y %H:%M:%S")
---> 13 indexNames = data[ (data['timestamp'] < '24-05-2021 00:00:00') & (data['timestamp'] > '05-07-2021 00:00:00') ].index
14 data.drop(indexNames , inplace=True)
15 return data
但它并没有像我想要的那样工作:当我使用 data['timestamp'].max()
时,我得到 2021-09-30
,这是不正确的。
between
对此效果更好:
def fix_time(data):
data['timestamp'] = pd.to_datetime(data['timestamp'], format="%d-%m-%Y %H:%M:%S")
return data[data['timestamp'].between('2021-05-07', '2021-05-24')]
另请注意,在 pandas 中比较日期时,您 必须 使用日期的 ISO 格式,即,您必须编写 2021-05-24 00:00:00
(yyyy-mm-dd) 而不是 24-05-2021 00:00:00
(dd-mm-yyyy).
我只想保留时间在同年 7 月 4 日到 5 月 24 日之间的行,所以我使用了以下代码:
def fix_time(data):
12 data['timestamp'] = pd.to_datetime(data['timestamp'], format="%d-%m-%Y %H:%M:%S")
---> 13 indexNames = data[ (data['timestamp'] < '24-05-2021 00:00:00') & (data['timestamp'] > '05-07-2021 00:00:00') ].index
14 data.drop(indexNames , inplace=True)
15 return data
但它并没有像我想要的那样工作:当我使用 data['timestamp'].max()
时,我得到 2021-09-30
,这是不正确的。
between
对此效果更好:
def fix_time(data):
data['timestamp'] = pd.to_datetime(data['timestamp'], format="%d-%m-%Y %H:%M:%S")
return data[data['timestamp'].between('2021-05-07', '2021-05-24')]
另请注意,在 pandas 中比较日期时,您 必须 使用日期的 ISO 格式,即,您必须编写 2021-05-24 00:00:00
(yyyy-mm-dd) 而不是 24-05-2021 00:00:00
(dd-mm-yyyy).