Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import arcpy
- from arcpy import env
- env.workspace = 'the database'
- butterfly = r'butterfly_2019' # the feature class
- for i in butterfly['ID']:
- d1 = datetime.date.max('Datum')
- d2 = datetime.date.min('Datum')
- countdays = d2-d1
- butterfly['NrDays'] = antal
- out_location = 'the database'
- arcpy.FeatureClassToGeodatabase_conversion(butterfly , out_location)
- import arcpy
- from collections import defaultdict
- fc = r'C:data.gdbsomefc'
- datefield = 'DATE'
- groupfield = 'GROUP'
- #Create dictionary
- d = defaultdict(list)
- with arcpy.da.SearchCursor(fc,[groupfield,datefield]) as cursor:
- for group, date in cursor:
- d[group].append(date)
- #d can now look like: defaultdict(<class 'list'>, {'OXFLYET': [datetime.datetime(2011, 4, 1, 0, 0), datetime.datetime(2011, 4, 1, 0, 0), datetime.datetime(2016, 11, 15, 0, 0), datetime.datetime(2011, 5, 1, 0, 0), datetime.datetime(2011, 5, 1, 0, 0)], 'MÖGSJÖN': [datetime.datetime(1992, 9, 1, 0, 0), None, None, datetime.datetime(1994, 1, 1, 0, 0)]})
- #Each group is key (I only have two), and all dates are values in a list
- #Calculate delta days per group
- for group, datelist in d.items():
- datelist = [x for x in datelist if x is not None]
- if len(datelist) > 1:
- print('{0}: {1} days'.format(group, (max(datelist)-min(datelist)).days))
- else:
- print('{0}: not enough dates'.format(group))
- OXFLYET: 2055 days
- MÖGSJÖN: 487 days
- df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor(fc,[groupfield,datefield]), columns=[groupfield,datefield])
- print(df.groupby(groupfield)[datefield].apply(lambda g: g.max() - g.min()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement