python - 如何识别满足特定条件的日期?[在蟒蛇中]
问题描述
我有一个数据框,其中包含一天中每个小时的最低、最高价格。数据集的持续时间约为一年。我附上了一个例子。您可以运行代码片段来生成表。抱歉,我是 Stackoverflow 的新手,我还不知道如何在此处插入表格。
我想隔离消费(最低)价格 < 0 至少 4 次的日期,该日期在 9 小时到 16 小时之间{让我们将此条件命名为 1}。我想要一个包含满足条件 1 的所有日期(所有 24 小时)的输出。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title></title>
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
margin: 5px 5px 5px 5px;
background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
font-size: 10pt;
font-family: 'Courier New';
font-style: normal;
font-weight: normal;
color: #000000;
text-decoration: none;
}
span.rvts1 /* Heading */
{
font-family: 'Arial';
font-weight: bold;
color: #0000ff;
}
span.rvts2 /* Subheading */
{
font-family: 'Arial';
font-weight: bold;
color: #000080;
}
span.rvts3 /* Keywords */
{
font-family: 'Arial';
font-style: italic;
color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
color: #008000;
text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
font-family: 'Arial';
color: #008000;
text-decoration: underline;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
text-align: left;
text-indent: 0px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
text-align: center;
}
--></style>
</head>
<body>
<p><br></p>
<div><table width="100%" border=1 cellpadding=1 cellspacing=2 style="background-color: #ffffff;">
<tr valign=top>
<td style="border-style: inset;">
<p><span class=rvts1>Date (CET)</span></p>
</td>
<td style="border-style: inset;">
<p><span class=rvts1>Consume (Min)</span></p>
</td>
<td style="border-style: inset;">
<p><span class=rvts1>Feed (Max)</span></p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;"><br>
</td>
<td style="border-style: inset;">
<p>EUR</p>
</td>
<td style="border-style: inset;">
<p>EUR</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 11:00]</p>
</td>
<td style="border-style: inset;">
<p>-159.02</p>
</td>
<td style="border-style: inset;">
<p>-159.02</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 12:00]</p>
</td>
<td style="border-style: inset;">
<p>-159</p>
</td>
<td style="border-style: inset;">
<p>-53.89</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 13:00]</p>
</td>
<td style="border-style: inset;">
<p>-0.33</p>
</td>
<td style="border-style: inset;">
<p>44.7</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 14:00]</p>
</td>
<td style="border-style: inset;">
<p>-150.32</p>
</td>
<td style="border-style: inset;">
<p>44.7</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 15:00]</p>
</td>
<td style="border-style: inset;">
<p>-3.9</p>
</td>
<td style="border-style: inset;">
<p>39.89</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 16:00]</p>
</td>
<td style="border-style: inset;">
<p>12.01</p>
</td>
<td style="border-style: inset;">
<p>52.2</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 17:00]</p>
</td>
<td style="border-style: inset;">
<p>34.31</p>
</td>
<td style="border-style: inset;">
<p>73.03</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 18:00]</p>
</td>
<td style="border-style: inset;">
<p>-74.57</p>
</td>
<td style="border-style: inset;">
<p>54.21</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 19:00]</p>
</td>
<td style="border-style: inset;">
<p>53.32</p>
</td>
<td style="border-style: inset;">
<p>64</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 20:00]</p>
</td>
<td style="border-style: inset;">
<p>36.89</p>
</td>
<td style="border-style: inset;">
<p>423.58</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 21:00]</p>
</td>
<td style="border-style: inset;">
<p>39.89</p>
</td>
<td style="border-style: inset;">
<p>54.14</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 22:00]</p>
</td>
<td style="border-style: inset;">
<p>33.89</p>
</td>
<td style="border-style: inset;">
<p>53.97</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[24/03/2021 23:00]</p>
</td>
<td style="border-style: inset;">
<p>33</p>
</td>
<td style="border-style: inset;">
<p>53.73</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 00:00]</p>
</td>
<td style="border-style: inset;">
<p>42.72</p>
</td>
<td style="border-style: inset;">
<p>45.84</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 01:00]</p>
</td>
<td style="border-style: inset;">
<p>42.98</p>
</td>
<td style="border-style: inset;">
<p>46.58</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 02:00]</p>
</td>
<td style="border-style: inset;">
<p>45.82</p>
</td>
<td style="border-style: inset;">
<p>48.1</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 03:00]</p>
</td>
<td style="border-style: inset;">
<p>45.82</p>
</td>
<td style="border-style: inset;">
<p>51.27</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 04:00]</p>
</td>
<td style="border-style: inset;">
<p>45.81</p>
</td>
<td style="border-style: inset;">
<p>49.51</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 05:00]</p>
</td>
<td style="border-style: inset;">
<p>45.47</p>
</td>
<td style="border-style: inset;">
<p>53.81</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 06:00]</p>
</td>
<td style="border-style: inset;">
<p>38.57</p>
</td>
<td style="border-style: inset;">
<p>53.42</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 07:00]</p>
</td>
<td style="border-style: inset;">
<p>36.44</p>
</td>
<td style="border-style: inset;">
<p>54.34</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 08:00]</p>
</td>
<td style="border-style: inset;">
<p>36.44</p>
</td>
<td style="border-style: inset;">
<p>40.51</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 09:00]</p>
</td>
<td style="border-style: inset;">
<p>39.44</p>
</td>
<td style="border-style: inset;">
<p>61.15</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 10:00]</p>
</td>
<td style="border-style: inset;">
<p>44.46</p>
</td>
<td style="border-style: inset;">
<p>87.73</p>
</td>
</tr>
<tr valign=top>
<td style="border-style: inset;">
<p>[25/03/2021 11:00]</p>
</td>
<td style="border-style: inset;">
<p>44.29</p>
</td>
<td style="border-style: inset;">
<p>45.02</p>
</td>
</tr>
</table>
</div>
</body></html>
解决方案
你可以使用这个库
from lxml import html
用于编写 HTML、XML、CSS 的 API 您可以使用 (xpath) 根据类名或想法从站点获取信息
例子:
time = tree.xpath('//date/text()')
然后你可以借助数组(time[0]
或 time[0:4]
)过滤信息,或者你可以通过(SQL)将信息保存在数据库中,然后排列它们。
同样在保存信息后,您可以使用
import time
time.time()
获取并排序最新的日期和时间,然后与您的数据进行比较。
推荐阅读
- android - 无法配置“模拟器”命令行工具
- spring-boot - 无法处理 Kafka 中的获取请求
- vue.js - 带有子路径的Vue路由器
- java - 绑定 InCallService
- java - 使用嵌套在 Object 中的 Object 生成 JSON 数据
- ruby-on-rails - 为什么 Spree 没有渲染我更改的模板?
- python - 为 subprocess.Popen 手动处理标准输入
- python - /customer/1/ 'customer' 对象的 AttributeError 没有属性 'order_set'
- java - 如何在Android Studio(JAVA)中将int表达式(来自drawabale)转换为String表达式
- python - 如何从字典中创建一个新列,其值是集合的键?