我有一个数据框,我已经用Pandas阅读了Python,如下所示:
>>> df
id temp
0 1 272.53702
1 2 272.41101
2 3 272.18503
3 4 271.79102
4 5 271.33701
5 6 270.86200
6 7 270.41501
7 8 269.97501
8 9 269.56201
9 10 269.18802
...
id
字段表示从1989年的第一个小时(1989年1月1日午夜)到2010年的最后一个小时的每小时。我的目标是从表示温度的temp
列中提取列表从2002年5月1日到2006年11月20日,然后使用Scipy的样条插值拟合列表。我的问题 - 将id
转换为日期时间,然后切片以获得我想要的适当日期范围的最有效方法是什么?
感谢。
答案 0 :(得分:1)
您可以使用日期算术来确定哪些id
值对应于您要查找的开始日期和结束日期,然后使用loc
选择相关的温度。这可能比将所有id
值转换为日期然后切片更快。
start = 24*(pd.to_datetime('2002-05-01') - pd.to_datetime('1989-01-01')).days
end = 24*(pd.to_datetime('2006-11-20') - pd.to_datetime('1989-01-01')).days - 1
temp_values = df.loc[df['id'].between(start, end), 'temp'].values
到“2006年11月20日”,我假设你的意思是,但不包括2006年11月20日。如果你想要数据通过 20,只需使用21而不是计算end
时的第20个。我从end
中减去一个来计算计算日期前一天的最后一小时,以便不包括计算中使用的日期。
答案 1 :(得分:0)
这基本上是你需要使用的:
>>> from datetime import datetime, timedelta
>>> print datetime(1989, 1, 1)
1989-01-01 00:00:00
>>> print datetime(1989, 1, 1) + timedelta(hours=5)
1989-01-01 05:00:00
答案 2 :(得分:0)
我建议您添加一个<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body style="background-color:lightgrey;">
<h2 align="center" style="color:green;">Employer</h2>
<table cellspacing="0" cellpadding="5" width="700" align="center">
<tr bgcolor="#9acd32">
<th style="text-align:left">EmployerID</th>
<th style="text-align:left">EmployerName</th>
<th style="text-align:left">EmployerAddress</th>
<th style="text-align:left">EmployerEmail</th>
<th style="text-align:left">EmployerPhone</th>
</tr>
<xsl:for-each select="EmploymnetService/Employer">
<xsl:sort select="EmployerName"/>
<tr>
<td><xsl:value-of select="@employerId"/></td>
<td><xsl:value-of select="EmployerName"/></td>
<td><xsl:value-of select="EmployerAddress"/></td>
<td><xsl:value-of select="EmployerEmail"/></td>
<td><xsl:value-of select="EmployerPhone"/></td>
</tr>
</xsl:for-each>
</table>
<h2 align="center" style="color:green;">Job Ad</h2>
<table cellspacing="0" cellpadding="5" width="700" align="center">
<tr bgcolor="#9acd32">
<th style="text-align:left">EmployerID</th>
<th style="text-align:left">JobID</th>
<th style="text-align:left">JobTitle</th>
<th style="text-align:left">JobDescription</th>
</tr>
<xsl:for-each select="EmploymnetService/Employer/EmployerJobAds/JobAd">
<tr>
<td><xsl:value-of select="@employerId"/></td>
<td><xsl:value-of select="@JobId"/></td>
<td><xsl:value-of select="jobTitle"/></td>
<td><xsl:value-of select="jobDescription"/></td>
</tr>
</xsl:for-each>
</table>
<h2 align="center" style="color:green;">Qualification</h2>
<table cellspacing="0" cellpadding="5" width="700" align="center">
<tr bgcolor="#9acd32">
<th style="text-align:left">JobID</th>
<th style="text-align:left">QLevel</th>
<th style="text-align:left">QName</th>
<th style="text-align:left">QFaculty</th>
<th style="text-align:left">QUniversity</th>
<th style="text-align:left">QGrade</th>
<th style="text-align:left">gradDate</th>
</tr>
<xsl:for-each select="EmploymnetService/Employer/EmployerJobAds/JobAd">
<tr>
<td><xsl:value-of select="@JobId"/></td>
<td><xsl:value-of select="QualificationsRequired/QLevel"/></td>
<td><xsl:value-of select="QualificationsRequired/QName"/></td>
<td><xsl:value-of select="QualificationsRequired/QFaculty"/></td>
<td><xsl:value-of select="QualificationsRequired/QUniversity"/></td>
<td><xsl:value-of select="QualificationsRequired/QGrade"/></td>
<td><xsl:value-of select="QualificationsRequired/gradDate"/></td>
</tr>
</xsl:for-each>
</table>
<h2 align="center" style="color:green;">Experience Required</h2>
<table cellspacing="0" cellpadding="5" width="700" align="center">
<tr bgcolor="#9acd32">
<th style="text-align:left">JobID</th>
<th style="text-align:left">ExpPosition</th>
<th style="text-align:left">expDescription</th>
<th style="text-align:left">expEmployer</th>
<th style="text-align:left">expFrom</th>
<th style="text-align:left">expTo</th>
</tr>
<xsl:for-each select="EmploymnetService/Employer/EmployerJobAds/JobAd">
<tr>
<td><xsl:value-of select="@JobId"/></td>
<td><xsl:value-of select="ExperienceRequired/ExpPosition"/></td>
<td><xsl:value-of select="ExperienceRequired/expDescription"/></td>
<td><xsl:value-of select="ExperienceRequired/expEmployer"/></td>
<td><xsl:value-of select="ExperienceRequired/expFrom"/></td>
<td><xsl:value-of select="ExperienceRequired/expTo"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
列,以便您传递datetime
个对象供选择:
datetime