首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ArcPy & Python -获取最新的两个日期,按值分组

ArcPy & Python -获取最新的两个日期,按值分组
EN

Stack Overflow用户
提问于 2018-07-12 05:35:28
回答 1查看 163关注 0票数 -1

过去一周我一直在寻找答案,但只看到了部分答案。作为python的新手,我真的需要一些帮助。我在一个表号和日期中有两个字段。日期格式为日期和时间,因此: 07/09/2018 3:30:30 PMnumber字段只是一个整数,但每行可以有相同的数字。

我已经尝试了几个选项来获取最新日期,我可以使用Pandas获得以下内容:

代码语言:javascript
复制
myarray = arcpy.da.FeatureClassToNumPyArray (fc, ['number', 'date'])
mydf = pd.DataFrame(myarray)
date_index = mydf.groupby(['number'])['date'].transform(max)==mydf['date']

不过,我需要最新的两个日期。我继续尝试"IF“语句,因为我觉得arcpy.da.UpdateCursor更适合通过按数字分组并返回具有最近两个日期的行来查看记录和更新另一个字段。

最终结果希望看到下表按编号、最近两个日期分组(作为示例):

代码语言:javascript
复制
Number : Date
1       7/29/2018 4:30:44 PM
1       7/30/2018 5:55:34 PM
2       8/2/2018  5:45:23 PM
2       8/3/2018  6:34:32 PM
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-12 09:08:42

尝尝这个。

代码语言:javascript
复制
import pandas as pd
import numpy as np

# Some data.

data = pd.DataFrame({'number': np.random.randint(3, size = 15), 'date': pd.date_range('2018-01-01', '2018-01-15')})

# Look at the data.

data

它给出了一些示例数据,如下所示:

因此,在我们的输出中,我们期望看到数字0与5和9,1与14和15,以及2与6和12。

然后我们按数字分组,抓取最后两行,并对索引进行设置和排序。

代码语言:javascript
复制
# Group and label the index.

last_2 = data.groupby('number').tail(2).set_index('number').sort_index()

last_2

这就给了我们期望的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51294494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档