当前位置: 首页 > 面试题库 >

pandas,python-如何选择时间序列中的特定时间

壤驷坚
2023-03-14
问题内容

我现在使用python和pandas进行了一段时间的分析,以分析一组每小时的数据,并发现它非常不错(来自Matlab。)

现在我有点卡住了。我创建了DataFrame这样的:

SamplingRateMinutes=60
index = DateRange(initialTime,finalTime, offset=datetools.Minute(SamplingRateMinutes))
ts=DataFrame(data, index=index)

我现在想做的是选择10到13和20-23时的全天数据,以使用该数据进行进一步的计算。到目前为止,我使用

 selectedData=ts[begin:end]

而且我肯定会得到某种肮脏的循环来选择所需的数据。但是必须有一种更优雅的方法来索引我想要的内容。我确信这是一个常见问题,伪代码中的解决方案应如下所示:

myIndex=ts.index[10<=ts.index.hour<=13 or 20<=ts.index.hour<=23]
selectedData=ts[myIndex]

值得一提的是,我是一名工程师,没有程序员:) …


问题答案:

这是一个满足您需求的示例:

In [32]: from datetime import datetime as dt

In [33]: dr = p.DateRange(dt(2009,1,1),dt(2010,12,31), offset=p.datetools.Hour())

In [34]: hr = dr.map(lambda x: x.hour)

In [35]: dt = p.DataFrame(rand(len(dr),2), dr)

In [36]: dt

Out[36]: 
<class 'pandas.core.frame.DataFrame'>
DateRange: 17497 entries, 2009-01-01 00:00:00 to 2010-12-31 00:00:00
offset: <1 Hour>
Data columns:
0    17497  non-null values
1    17497  non-null values
dtypes: float64(2)

In [37]: dt[(hr >= 10) & (hr <=16)]

Out[37]: 
<class 'pandas.core.frame.DataFrame'>
Index: 5103 entries, 2009-01-01 10:00:00 to 2010-12-30 16:00:00
Data columns:
0    5103  non-null values
1    5103  non-null values
dtypes: float64(2)


 类似资料:
  • 主要内容:创建时间戳,创建时间范围,更改时间频率,转化为时间戳,频率和周期转换,时间周期计算,创建时间周期,时间序列转换,创建日期范围,更改日频率,工作日时间顾名思义,时间序列(time series),就是由时间构成的序列,它指的是在一定时间内按照时间顺序测量的某个变量的取值序列,比如一天内的温度会随时间而发生变化,或者股票的价格会随着时间不断的波动,这里用到的一系列时间,就可以看做时间序列。时间序列包含三种应用场景,分别是: 特定的时刻(timestamp),也就是时间戳; 固定的日期(pe

  • 问题内容: 我的Pandas Dataframe框架看起来像这样 我希望数据位于9到10个小时之间……如果有人从事过此类工作,那将非常有帮助。 问题答案: In [7]: index = date_range(‘20131009 08:30’,‘20131010 10:05’,freq=‘5T’)

  • 我正在使用日期选择器和选定的datePicker模式作为时间。当我加载日期选择器时,它显示的是当前时间。但我想设置默认时间总是5:00 PM。 我试过下面的方法,但对我不起作用。 请帮我把时间默认为下午5点。谢谢.

  • 我想显示“users”表中两个指定列“first_name”和“pic”的所有值。我正在尝试“Pulk”,但它在echo时显示为json格式。但我需要展示给大家看,一些东西——‘John pic’。求求你,有人帮帮我。这是我在“索引”中的示例代码。刀身php的吼声-

  • 问题内容: 我有一个类型为“ datetime”的列,其值类似于2009-10-20 10:00:00 我想从datetime提取日期并编写类似的查询: 以下是最好的方法吗? 但是,这将返回一个空的结果集。有什么建议么? 问题答案: 您可以使用MySQL的功能: 您也可以尝试以下方法: 有关使用的性能影响的信息,请参见此答案。

  • Pandas 在对频率转换进行重新采样时拥有简单、强大且高效的功能(如将按秒采样的数据转换为按5分钟为单位进行采样的数据)。这种操作在金融领域非常常见。具体参考:时间序列。 In [108]: rng = pd.date_range('1/1/2012', periods=100, freq='S') In [109]: ts = pd.Series(np.random.randint(0, 50

  • 我正在使用Spring数据jpa来创建服务。使用我从多个表中提取记录。我在模型类中使用了映射。模型类与和进行映射。相符。 我只想从建筑中选择建筑名称。 谁能告诉我怎么办? 查询DSL 结果

  • 是否有一种方法可以更改“starts_with”命令来选择所有以大写字母和句号开头的列?我尝试使用诸如“[A-Z]”之类的修改。都没有成功。 提前致谢