gpt4 book ai didi

python - 在 DataFrame 中查找最近的时间

转载 作者:行者123 更新时间:2023-11-30 22:17:27 27 4
gpt4 key购买 nike

我有两个不同的时间格式数据集,就像这样

df1 = pd.DataFrame( {'A': [1499503900, 1512522054, 1412525061, 1502527681, 1512532303]})

df2 = pd.DataFrame( {'B' : ['2017-12-15T11:47:58.119Z', '2017-05-31T08:27:41.943Z', '2017-06-05T14:44:56.425Z', '2017-05-30T16:24:03.175Z' , '2017-07-03T10:20:46.333Z', '2017-06-16T10:13:31.535Z' , '2017-12-15T12:26:01.347Z', '2017-06-15T16:00:41.017Z', '2017-11-28T15:25:39.016Z', '2017-08-10T08:48:01.347Z'] })

我需要找到第一个数据集中每个数据的最近日期。有多远并不重要。只需要最近的时间。例如:

1499503900 for '2017-07-03T10:20:46.333Z'
1512522054 for '2017-12-15T12:26:01.347Z'
1412525061 for '2017-05-31T08:27:41.943Z'
1502527681 for '2017-08-10T08:48:01.347Z'
1512532303 for '2017-06-05T14:44:56.425Z'

这里有一些帮助:这是为了转换为长格式日期:

def time1(date_text):
date = datetime.datetime.strptime(date_text, "%Y-%m-%dT%H:%M:%S.%fZ")
return calendar.timegm(date.utctimetuple())

x = '2017-12-15T12:26:01.347Z'
print(time1(x))

输出:1513340761

这是为了转换为 ISO 格式:

def time_covert(time):
seconds_since_epoch = time
DT.datetime.utcfromtimestamp(seconds_since_epoch)
return DT.datetime.utcfromtimestamp(seconds_since_epoch).isoformat()

y = 1499503900
print(time_covert(y))

输出 = 2017-07-08T08:51:40

任何想法都会非常有用。提前谢谢大家!

最佳答案

这里是快速入门:

def time_covert(time):
seconds_since_epoch = time
return datetime.utcfromtimestamp(seconds_since_epoch)

# real time series
df2['B'] = pd.to_datetime(df2['B'])
df2.index = df2['B']
del df2['B']

for a in df1['A']:
print( time_covert(a))
i = np.argmin(np.abs(df2.index.to_pydatetime() - time_covert(a)))
print(df2.iloc[i])

关于python - 在 DataFrame 中查找最近的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com