gpt4 book ai didi

python - 如何使用 Pandas 查找两个不同日期时间之间的最小值?

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:20 25 4
gpt4 key购买 nike

(不重复/我的问题完全不同)

我的数据框看起来像这样:

# [df2] is day based

time time2
2017-01-01, 2017-01-01 00:12:00
2017-01-02, 2017-01-02 03:15:00
2017-01-03, 2017-01-03 01:25:00
2017-01-04, 2017-01-04 04:12:00
2017-01-05, 2017-01-05 00:45:00
....

# [df] is minute based

time value
2017-01-01 00:01:00, 0.1232
2017-01-01 00:02:00, 0.1232
2017-01-01 00:03:00, 0.1232
2017-01-01 00:04:00, 0.1232
2017-01-01 00:05:00, 0.1232
....

我想在 [df2] 中创建一个名为 time_val_min 的新列,用于查找 df2['time2] 之间的 min 值']df2['time']df2['time'] 指定的范围内形成 [df] 并且df2['time2']

我做了什么?

我做了df2['time_val_min'] = df[df['time'].dt.hour. Between(df2['time'], df2['time'])].min() 但它不起作用。

你能告诉我如何解决这个问题吗?

最佳答案

您可以按日期合并两个数据框,并过滤时间:

# create the date from the time column
df['date'] = df['time'].dt.normalize()

# merge
new_df = (df.merge(df2, left_on='date', # left on date
right_on='time', # right on time, if time is purely beginning of days
how='right',
suffixes=['','_y'])
.query('time < time2')
.groupby('date')
['time'].min()
.to_frame(name='time_val_min')
.merge(df2, right_on='time', left_index=True)
)

输出:

         time_val_min       time               time2
0 2017-01-01 00:01:00 2017-01-01 2017-01-01 00:12:00

关于python - 如何使用 Pandas 查找两个不同日期时间之间的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58314754/

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