相关疑难解决方法(0)

python pandas dataframe按日期条件切片

我能够使用python datetime对象读取和切片pandas数据帧,但是我被迫只使用索引中的现有日期.例如,这有效:

>>> data
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 252 entries, 2010-12-31 00:00:00 to 2010-04-01 00:00:00
Data columns:
Adj Close    252  non-null values
dtypes: float64(1)

>>> st = datetime.datetime(2010, 12, 31, 0, 0)
>>> en = datetime.datetime(2010, 12, 28, 0, 0)

>>> data[st:en]
            Adj Close
Date                 
2010-12-31     593.97
2010-12-30     598.86
2010-12-29     601.00
2010-12-28     598.92
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用DF中不存在的开始日期或结束日期,我会得到python KeyError.

我的问题:如何查询数据框对象的日期范围; 即使DataFrame中不存在开始日期和结束日期.大熊猫是否允许基于范围的切片?

我正在使用pandas版本0.10.1

python dataframe pandas

46
推荐指数
3
解决办法
7万
查看次数

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

我现在工作了很长一段时间使用python和pandas来分析一组每小时数据并发现它非常好(来自Matlab.)

现在我有点卡住了.我创造了我的DataFrame喜欢:

SamplingRateMinutes=60
index = DateRange(initialTime,finalTime, offset=datetools.Minute(SamplingRateMinutes))
ts=DataFrame(data, index=index)
Run Code Online (Sandbox Code Playgroud)

我现在要做的是选择10到13和20-23小时的所有日期的数据,以便使用这些数据进行进一步的计算.到目前为止,我使用了切片数据

 selectedData=ts[begin:end]
Run Code Online (Sandbox Code Playgroud)

我肯定会得到某种脏循环来选择所需的数据.但必须有一种更优雅的方式来指出我想要的东西.我确信这是一个常见的问题,伪代码的解决方案看起来应该是这样的:

myIndex=ts.index[10<=ts.index.hour<=13 or 20<=ts.index.hour<=23]
selectedData=ts[myIndex]
Run Code Online (Sandbox Code Playgroud)

提到我是一名工程师而且没有程序员:) ...

python indexing time-series pandas

16
推荐指数
3
解决办法
2万
查看次数

Pandas DataFrame按天/小时/分钟切片

我有一个带有日期时间索引的pandas Dataframe,如'YYYY-MM-DD HH:MM:SS'.

Index               Parameter
2007-05-02 14:14:08     134.8
2007-05-02 14:14:32     134.8 
2007-05-02 14:14:41     134.8 
2007-05-02 14:14:53     134.8 
2007-05-02 14:15:01     134.8 
2007-05-02 14:15:09     134.8 
......
2007-05-30 23:08:02     105.9 
2007-05-30 23:18:02     105.9 
2007-05-30 23:28:02     105.9 
2007-05-30 23:38:03     105.8 
Run Code Online (Sandbox Code Playgroud)

可以按年df['2007']或按月分割数据帧df['2007-05']吗?

但是,当我试图在白天切片DataFrame时df['2007-05-02'],我得到了错误:

KeyError: < Timestamp: 2007-02-05 00:00:00. 
Run Code Online (Sandbox Code Playgroud)

我使用pandas版本8.0.1.是否可以以比年或月更小的频率切片DataFrame?例如,按天或小时?

python slice pandas

6
推荐指数
1
解决办法
5236
查看次数

标签 统计

pandas ×3

python ×3

dataframe ×1

indexing ×1

slice ×1

time-series ×1