从熊猫数据框中消除特定日期的最快方法

里德

我正在处理一个大型数据框,但我一直在努力寻找消除特定日期的有效方法。请注意,我试图消除任何测量从一个特定的日期

熊猫具有这项出色的功能,您可以在其中调用:

df.ix['2016-04-22'] 

并拉出当天的所有行。但是,如果我想删除“ 2016-04-22”中的所有行怎么办?

我想要这样的功能:

df.ix[~'2016-04-22']

(但这不起作用)

另外,如果我要消除日期列表怎么办?

现在,我有以下解决方案:

import numpy as np
import pandas as pd
from numpy import random

###Create a sample data frame

dates = [pd.Timestamp('2016-04-25 06:48:33'), pd.Timestamp('2016-04-27 15:33:23'), pd.Timestamp('2016-04-23 11:23:41'), pd.Timestamp('2016-04-28    12:08:20'), pd.Timestamp('2016-04-21 15:03:49'), pd.Timestamp('2016-04-23 08:13:42'), pd.Timestamp('2016-04-27 21:18:22'), pd.Timestamp('2016-04-27 18:08:23'), pd.Timestamp('2016-04-27 20:48:22'), pd.Timestamp('2016-04-23 14:08:41'), pd.Timestamp('2016-04-27 02:53:26'), pd.Timestamp('2016-04-25 21:48:31'), pd.Timestamp('2016-04-22 12:13:47'), pd.Timestamp('2016-04-27 01:58:26'), pd.Timestamp('2016-04-24 11:48:37'), pd.Timestamp('2016-04-22 08:38:46'), pd.Timestamp('2016-04-26 13:58:28'), pd.Timestamp('2016-04-24 15:23:36'), pd.Timestamp('2016-04-22 07:53:46'), pd.Timestamp('2016-04-27 23:13:22')]

values = random.normal(20, 20, 20)

df = pd.DataFrame(index=dates, data=values, columns ['values']).sort_index()

### This is the list of dates I want to remove

removelist = ['2016-04-22', '2016-04-24']

此for循环基本上会获取我要删除的日期的索引,然后从主数据框的索引中将其删除,然后从该数据框中积极选择剩余的日期(即:良好的日期)。

for r in removelist:
    elimlist = df.ix[r].index.tolist()
    ind = df.index.tolist()
    culind = [i for i in ind if i not in elimlist]
    df = df.ix[culind]

有什么更好的了吗?

我也尝试过按四舍五入的日期+ 1天建立索引,所以像这样:

df[~((df['Timestamp'] < r+pd.Timedelta("1 day")) & (df['Timestamp'] > r))]

但这确实很麻烦,并且(在一天结束时)当我需要消除n个特定日期时,我仍将使用for循环。

一定有更好的方法!正确的?可能是?

相同的思路@Alexander,但使用的属性DatetimeIndexnumpy.in1d

mask = ~np.in1d(df.index.date, pd.to_datetime(removelist).date)
df = df.loc[mask, :]

时间:

%timeit df.loc[~np.in1d(df.index.date, pd.to_datetime(removelist).date), :]
1000 loops, best of 3: 1.42 ms per loop

%timeit df[[d.date() not in pd.to_datetime(removelist) for d in df.index]]
100 loops, best of 3: 3.25 ms per loop

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为熊猫中的特定日期范围过滤数据框

来自分类Dev

从熊猫数据框中选择特定日期

来自分类Dev

如何获取熊猫数据框中特定日期/时间的所有历史值?

来自分类Dev

检查另一个熊猫数据框中存在哪些日期的最快方法

来自分类Dev

如何删除Pandas数据框中特定日期的行?

来自分类Dev

从 R 数据框中查找特定日期

来自分类Dev

熊猫数据框中两个给定日期之间的日期列表

来自分类Dev

遍历熊猫数据框的最快方法?

来自分类Dev

“解压”熊猫数据框的最快方法

来自分类Dev

在mongodb中查找特定日期的数据

来自分类Dev

从SQLite中的特定日期检索数据

来自分类Dev

如何在特定日期为数据框中的行移动时间戳

来自分类Dev

删除具有特定日期时间值的 Pandas 数据框中的某些行

来自分类Dev

如何从数据框中选择特定日期?

来自分类Dev

Python Pandas Dataframe-如果索引日期早于特定日期,则从数据框中删除数据

来自分类Dev

解析熊猫中的特定日期和时间顺序

来自分类Dev

如何为熊猫中的特定日期添加值?

来自分类Dev

排序熊猫数据框中每一行的最快方法

来自分类Dev

在多列上筛选熊猫数据框的最快方法

来自分类Dev

在多列上过滤熊猫数据框的最快方法

来自分类Dev

在R中的另一个数据框中选择日期最接近特定日期的行

来自分类Dev

特定日期缺失数据

来自分类Dev

选择特定日期的数据

来自分类Dev

在熊猫数据框中估算缺少的日期

来自分类Dev

在熊猫数据框中附加日期

来自分类Dev

熊猫在特定日期之前重新采样

来自分类Dev

从特定日期开始对熊猫进行分箱

来自分类Dev

查询Laravel 4中特定日期范围的数据记录

来自分类Dev

如何备份特定日期和时间的mysql中的数据?

Related 相关文章

  1. 1

    为熊猫中的特定日期范围过滤数据框

  2. 2

    从熊猫数据框中选择特定日期

  3. 3

    如何获取熊猫数据框中特定日期/时间的所有历史值?

  4. 4

    检查另一个熊猫数据框中存在哪些日期的最快方法

  5. 5

    如何删除Pandas数据框中特定日期的行?

  6. 6

    从 R 数据框中查找特定日期

  7. 7

    熊猫数据框中两个给定日期之间的日期列表

  8. 8

    遍历熊猫数据框的最快方法?

  9. 9

    “解压”熊猫数据框的最快方法

  10. 10

    在mongodb中查找特定日期的数据

  11. 11

    从SQLite中的特定日期检索数据

  12. 12

    如何在特定日期为数据框中的行移动时间戳

  13. 13

    删除具有特定日期时间值的 Pandas 数据框中的某些行

  14. 14

    如何从数据框中选择特定日期?

  15. 15

    Python Pandas Dataframe-如果索引日期早于特定日期,则从数据框中删除数据

  16. 16

    解析熊猫中的特定日期和时间顺序

  17. 17

    如何为熊猫中的特定日期添加值?

  18. 18

    排序熊猫数据框中每一行的最快方法

  19. 19

    在多列上筛选熊猫数据框的最快方法

  20. 20

    在多列上过滤熊猫数据框的最快方法

  21. 21

    在R中的另一个数据框中选择日期最接近特定日期的行

  22. 22

    特定日期缺失数据

  23. 23

    选择特定日期的数据

  24. 24

    在熊猫数据框中估算缺少的日期

  25. 25

    在熊猫数据框中附加日期

  26. 26

    熊猫在特定日期之前重新采样

  27. 27

    从特定日期开始对熊猫进行分箱

  28. 28

    查询Laravel 4中特定日期范围的数据记录

  29. 29

    如何备份特定日期和时间的mysql中的数据?

热门标签

归档