gpt4 book ai didi

python - 添加日期匹配的列表元素 (Python)

转载 作者:行者123 更新时间:2023-11-28 16:25:54 28 4
gpt4 key购买 nike

我有 2 个列表:

vals = [1,2,3,4]
dates = [t1, t2, t3, t4]

其中日期采用 Python 的日期时间格式。

然后,给定另一组列表:

vals_2 = [1, 1, 2, 2]
dates_2 = [t5,t6,t7,t8]

可能是t6 = t1

现在,我想在日期匹配的地方添加 valsvals_2(所以添加 vals[i]vals_2 [j] 如果 dates[i] == dates_2[j]).

我想要一个有效的解决方案。

到目前为止我的想法:将 vals 放入 Pandas 数据框中,然后将 vals_2 放入单独的数据框中,然后将两者合并到日期键上?

问题:这是一个好(/最好)的主意吗?考虑到日期时间格式等,我不确定如何处理这个问题,因此将不胜感激一些关于如何开始的指示

谢谢

最佳答案

按照您的建议:

import datetime as dt

vals = [1, 2, 3, 4]
dates = [dt.date(2016,1,n) for n in range(1, 5)]
vals_2 = [1, 1, 2, 2]
dates_2 = [dt.date(2016,1,n) for n in range(3, 7)]

df1 = pd.DataFrame({'date': dates, 'vals': vals})
df2 = pd.DataFrame({'date': dates_2, 'vals': vals_2})

>>> df1.merge(df2, on='date', suffixes=['_1', '_2'])

date vals_1 vals_2
0 2016-01-03 3 1
1 2016-01-04 4 1

你也可以将日期转换成时间戳,然后进行比较,这样应该会稍微快一些:

df1['date'] = pd.to_datetime(df1.date)
df2['date'] = pd.to_datetime(df2.date)

40k 条记录的计时

使用日期时间对象的 Pandas。

%timeit df1.merge(df2, on='date', suffixes=['_1', '_2'])
1 loops, best of 3: 10.2 s per loop

使用时间戳的 Pandas。

%timeit df1.merge(df2, on='date', suffixes=['_1', '_2'])
1 loops, best of 3: 9.1 s per loop

关于python - 添加日期匹配的列表元素 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36697373/

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