【问题标题】:Pandas Filter values by datePandas 按日期过滤值
【发布时间】:2016-08-21 22:32:44
【问题描述】:

我有一个日期数组 dateref 并想获取 pandas 数据框数据的值 按 dateref 过滤(仅 dateref 中包含的日期的值):

我试过了,但它不起作用:

  df: Out[36]: rec.array([ (datetime.date(2007, 4, 10), 105), 

  df[df.date== dateref ]

data.date : 日期数组

data.value : 值数组

编辑:这个返回错误

data[data.date.isin(dateref)] 
AttributeError: 'numpy.ndarray' object has no attribute 'isin'

【问题讨论】:

标签: python pandas


【解决方案1】:

我觉得你需要numpy.in1d:

data[np.in1d(data.date, dateref)] 

示例:

import numpy as np
import datetime as datetime

test = np.array([datetime.date(2007, 4, 10), 
                 datetime.date(2007, 5, 10), 
                 datetime.date(2007, 6, 10)])

states = [datetime.date(2007, 4, 10), 
          datetime.date(2007, 5, 10)]

mask = np.in1d(test, states)
print mask
[ True  True False]

print test[mask]
[datetime.date(2007, 4, 10) datetime.date(2007, 5, 10)]

【讨论】:

    猜你喜欢
    • 2014-05-18
    • 2017-09-06
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2020-04-16
    相关资源
    最近更新 更多