是否有一种矢量化方法可以从索引最接近列表数据的 pd.DataFrame 中获取数据?
Is there a vectorised way to fetch data from a pd.DataFrame where the index is closest to data from a list?
编辑了合理的数据和预期的输出
我有一个像
这样的数据框
Fredericksburg A Fredericksburg K 0-3 Fredericksburg K 3-6
Date
2020-01-01 3.0 0.0 0.0
2020-01-02 2.0 0.0 1.0
2020-01-03 6.0 0.0 1.0
2020-01-04 5.0 NaN NaN
2020-01-05 7.0 2.0 1.0
我也有一个时间清单喜欢
[
"2020-01-01 00:15:46",
"2020-01-02 06:30:07",
"2020-01-03 12:19:14",
"2020-01-04 15:16:21",
"2020-01-04 05:07:28",
"2020-01-05 21:47:42",
"2020-01-06 10:10:42",
]
Fredericksburg A Fredericksburg K 0-3 Fredericksburg K 3-6
Date
2020-01-01 00:15:46 3.0 0.0 0.0
2020-01-02 06:30:07 2.0 0.0 1.0
2020-01-03 12:19:14 6.0 0.0 1.0
2020-01-04 15:16:21 5.0 NaN NaN
2020-01-04 05:07:28 5.0 NaN NaN
2020-01-05 21:47:42 7.0 2.0 1.0
2020-01-06 10:10:42 7.0 2.0 1.0
有没有办法从数据帧中获取最接近列表中时间的数据? (可能矢量化)
df['Date'] = pd.to_datetime(df['Date'])
df2 = pd.DataFrame([
"2020-03-16 00:15:46",
"2020-03-16 00:16:07",
"2020-03-16 00:16:14",
"2020-03-16 00:16:21",
"2020-03-16 00:16:28",
"2020-03-16 00:16:42",
"2020-03-16 00:16:56",
"2020-03-16 00:17:03",
"2020-03-16 00:17:10",
], columns=['Date'])
df2['Date'] = pd.to_datetime(df2['Date'])
pd.merge_asof(df2, df, on='Date')
编辑了合理的数据和预期的输出
我有一个像
这样的数据框 Fredericksburg A Fredericksburg K 0-3 Fredericksburg K 3-6
Date
2020-01-01 3.0 0.0 0.0
2020-01-02 2.0 0.0 1.0
2020-01-03 6.0 0.0 1.0
2020-01-04 5.0 NaN NaN
2020-01-05 7.0 2.0 1.0
我也有一个时间清单喜欢
[
"2020-01-01 00:15:46",
"2020-01-02 06:30:07",
"2020-01-03 12:19:14",
"2020-01-04 15:16:21",
"2020-01-04 05:07:28",
"2020-01-05 21:47:42",
"2020-01-06 10:10:42",
]
Fredericksburg A Fredericksburg K 0-3 Fredericksburg K 3-6
Date
2020-01-01 00:15:46 3.0 0.0 0.0
2020-01-02 06:30:07 2.0 0.0 1.0
2020-01-03 12:19:14 6.0 0.0 1.0
2020-01-04 15:16:21 5.0 NaN NaN
2020-01-04 05:07:28 5.0 NaN NaN
2020-01-05 21:47:42 7.0 2.0 1.0
2020-01-06 10:10:42 7.0 2.0 1.0
有没有办法从数据帧中获取最接近列表中时间的数据? (可能矢量化)
df['Date'] = pd.to_datetime(df['Date'])
df2 = pd.DataFrame([
"2020-03-16 00:15:46",
"2020-03-16 00:16:07",
"2020-03-16 00:16:14",
"2020-03-16 00:16:21",
"2020-03-16 00:16:28",
"2020-03-16 00:16:42",
"2020-03-16 00:16:56",
"2020-03-16 00:17:03",
"2020-03-16 00:17:10",
], columns=['Date'])
df2['Date'] = pd.to_datetime(df2['Date'])
pd.merge_asof(df2, df, on='Date')