python - 在日期时间字段中按小时对 NumPy 数组进行分箱

标签 python arrays datetime numpy subset

我一直在Python中努力解决如何根据包含日期和时间的字段中的小时对csv中的记录进行分组。该文件包含大约 1,000,000 条记录。我已将文件读入 Pandas 数据帧并创建了一个二维 NumPy 数组,以便每个记录都是 NumPy 数组中的子列表,例如:

#this is a NumPy array
npdata = ([somedata, '2014-07-01 08:18:21', somedata, somedata, somedata, somedata, etc], 
[somedata, '2014-07-01 10:01:40', somedata, somedata, somedata, somedata, etc], etc...])

日期和时间是一个字符串,在每个子列表中始终位于相同位置 (1)。我创建了变量“hourlist”,它是 24 个空子列表的列表。我想迭代“npdata”,以使用 npdata 中在日期和时间字段中包含相同小时的子列表子集填充“hourlist”中的 24 个子列表中的每一个。例如。日期时间为 00:xx:xx 的所有“npdata”子列表将位于“hourlist”的一个子列表中,所有 01:xx:xx 位于另一个子列表中,所有 02:00:00 位于另一个子列表中,等等,从 0 到 23 小时。我一直试图解决这个问题,但总是碰壁。根据一些 Google 搜索,我认为应该使用 datetime.strptime() 类方法作为解决方案的一部分,但我不明白如何使用。

我真的很感谢任何提示/建议。

最佳答案

给定时间字符串的格式,小时始终位于字符串的位置 [11:13],并且始终为整数。

因此,只需编写一个函数来获取该整数并将其用作索引,如下所示:

def get_hour(in_array):
    return int(in_array[1][11:13])

for x in npdata:
    hourlist[get_hour(x)].append(x)

关于python - 在日期时间字段中按小时对 NumPy 数组进行分箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31689334/

相关文章:

python - PDFMiner - 获取文本行

python - 期望在不同窗口中输出

ios - 数组追加会覆盖 Realm 对象的最后一个索引

c# - 在 WPF 数据网格中将 Null 或默认 DateTime 值显示为 "blank"或 NA

datetime - Delphi:删除目录中早于 X 天和/或具有特殊文件掩码 (*.xxx) 的文件

python - 亚马逊 AWS EC2 : How to host an API and a website on EC2 instance

java - 为什么我在尝试打印整数数组时收到 "[Ljava.lang.Integer;@72608760"

android - 如何在android中设置带有文本的按钮

c# - DateTime.Now 是否受到更改系统时钟的影响?

python - Pandas Merge 中缺少数据