根据条件删除行

发布于 2025-01-17 06:32:02 字数 501 浏览 2 评论 0原文

我只想保留时间在同年 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 这不正确。

I want to keep only the rows in which the time is between the July 4 and May 24 of the same year, so I'm using this code :

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

But it doesn't work as I wanted: when I use data['timestamp'].max() I get 2021-09-30 and that's not be correct.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最好是你 2025-01-24 06:32:02

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 (年-月-日)。

between works better for this:

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')]

Also, note that you must use the ISO format of dates when comparing dates in pandas, i.e., you have to write 2021-05-24 00:00:00 (yyyy-mm-dd) instead of 24-05-2021 00:00:00 (dd-mm-yyyy).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文