问题描述
我正在尝试使用 VBScript 或 Python 计算 ArcGIS 中两点之间的时间差。我有一个超过 1 万个点的数据集。每个都有坐标、日期和时间。我想创建一个新字段并计算以秒为单位的时间差。
数据如下:
FID 形状 N E 日期时间
0 点 4768252.94469 4768252.94469 2021/05/06 12:12:05
1 点 4768245.79949 4768245.79949 2021/05/06 12:12:11
2 点 4768241.44071 4768241.44071 2021/05/06 12:12:15
3 点 4768237.3568 4768237.3568 2021/05/06 12:12:18
因此,显示数据的结果将是“6,4,3,...”。我非常感谢您的帮助,因为我尝试了很多事情,但都没有成功。
解决方法
这是使用 Python 的 Pandas 模块执行此操作的一种方法。
你可以这样做:
# import module Pandas
import pandas as pd
# Data as a python Dictionary. Can be imported as CSV too.
data = {
'N' : ['4768252.94469','4768245.79949','4768241.44071','4768237.3568'],'E' : ['4768252.94469','Time': ['12:12:05','12:12:11','12:12:15','12:12:18']
}
# Creating a Pandas Dataframe object
df = pd.DataFrame(data)
# If you want to import the data from CSV use df = pd.read_csv('csvname.csv')
# Converting Time column to datetime object
df['Time'] = pd.to_datetime(df['Time'])
# print the differences
print(df["Time"].diff())
输出:
1 0 days 00:00:06
2 0 days 00:00:04
3 0 days 00:00:03