Python 需要根据我的一列(时间)的值将CSV分解成更小的表

Python 需要根据我的一列(时间)的值将CSV分解成更小的表,python,csv,geospatial,arcgis,arcpy,Python,Csv,Geospatial,Arcgis,Arcpy,我有带时间戳的空间跟踪数据(lat,long)。如果任意两个连续点之间的时间超过2小时,我无法很好地分析数据,因此我希望根据用户指定的时间阈值分割数据集。最终目标是将它们作为形状文件(点)上传到ArcGIS中。很多拆分都是为了拆分成相等的行或一些公共属性,但这将由用户指定,并因数据集而异。我对这一点非常陌生,所以没有一个脚本不好笑,但我想在中读取新数据,然后创建空列表,只要时间(deltaseconds)小于一定量(比如30分钟或1800秒),就添加到其中。一旦达到该数量,将其保存为列表并创建一

我有带时间戳的空间跟踪数据(lat,long)。如果任意两个连续点之间的时间超过2小时,我无法很好地分析数据,因此我希望根据用户指定的时间阈值分割数据集。最终目标是将它们作为形状文件(点)上传到ArcGIS中。很多拆分都是为了拆分成相等的行或一些公共属性,但这将由用户指定,并因数据集而异。我对这一点非常陌生,所以没有一个脚本不好笑,但我想在中读取新数据,然后创建空列表,只要时间(deltaseconds)小于一定量(比如30分钟或1800秒),就添加到其中。一旦达到该数量,将其保存为列表并创建一个输出文件,然后从下一个点开始放入新列表…但在CSV中时,可能有办法做到这一点?这是csv中的数据示例:

Time                   Lat      Lng        Time     deltaseconds
9/12/2015   21:52   16.5033   -85.87527   0:00:00    0
9/12/2015   21:52   16.5033   -85.87524   0:00:01    1
9/12/2015   21:53   16.5033   -85.8752    0:00:55    55

感谢您的帮助!!谢谢大家!

我知道您希望根据“deltaseconds”字段中给定的时间段范围将现有csv分解为多个形状文件。首先,手动将字段名“deltaseconds”更改为“deltasec”,因为shapefile最多只能使用10个字符的字段长度。 下面是可以在arcpy中运行的脚本:

import arcpy
from arcpy import env
def export_multiple_shps(workspace,file,t):
# Define workspace
    env.workspace=workspace
# Convert CSV to Shapefile, assuming that x-field is 'Lng' & y-field is 'Lat'
    MakeXYEventLayer_management(file, "Lng", "Lat", "tracking.shp")
# Count no. of rows in tracking shapefile
    arcpy.MakeTableView_management("tracking.shp","tableView")
    row_count=int(arcpy.GetCount_management("tableView").getOutput(0))
    k=1
    j=0
# Loop to export shapefiles after every t sec increment in 'deltasec' 
    for i in range(t,row_count,t):
        query1='\"deltasec\"<={}'.format(i)
        query2='\"deltasec\"<={}'.format(j)
        arcpy.SelectLayerByAttribute_management("tracking.shp","NEW_SELECTION",query1)
        arcpy.SelectLayerByAttribute_management("tracking.shp","REMOVE_FROM_SELECTION",query2)
        arcpy.CopyFeatures_management("tracking.shp","tracking"+str(k)+".shp")
        j=i
        k+=1
# Executing function, by assuming csv is placed in "D:/data" with name "tracking.csv", & we want to export shapefile after every "1800 sec". You can change the inputs as per requirement
export_multiple_shps(workspace="D:/data",file="tracking.csv",t=1800)
导入arcpy
从arcpy导入环境
def导出多个SHP(工作区、文件、t):
#定义工作空间
env.workspace=工作区
#将CSV转换为Shapefile,假设x字段为“Lng”,y字段为“Lat”
MakeXYEventLayer_管理(文件“Lng”、“Lat”、“tracking.shp”)
#跟踪形状文件中的行数计数
arcpy.MakeTableView\u管理(“tracking.shp”、“tableView”)
行计数=int(arcpy.GetCount\u管理(“tableView”).getOutput(0))
k=1
j=0
#循环以在“deltasec”中每增加一秒后导出形状文件
对于范围内的i(t,行计数,t):

query1='\'deltasec\'欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布代码并准确描述问题之前,我们无法有效地帮助您。StackOverflow不是编码或教程服务。简言之,我们希望你首先对这个问题做出很好的尝试。你已经很好地开始了分析;现在选择一个攻击并开始编码。您已经了解Python csv模块了吗?这可以简化csv文件的处理。是的,我一直在尝试,但失败了。以下是我迄今为止(或我的工作流程)导入csv导入os导入sys f=open('V:\\finalproject\\Data\\rachel\u honduras\u Tracks.csv')csv\u f=csv.reader(f)output\u file=“V:\\finalproject\\Data\\editeddata\\newoutputfile.csv”,用于reader:new\u list=[]读入新行new_list.append#如果deltaseonds编辑
按钮)。一行前面的四个空格将其放入
code
块中。