date
0 09-2019
1 10-2019
2 11-2019
4 01-2020
5 02-2020
7 04-2020
Run Code Online (Sandbox Code Playgroud)
我有一个dates像上面这样的熊猫数据框- 这不是以任何方式订购的。我将日期列设置为日期时间类型并仅选择月份和年份,如下所示:
dates['date'] = pd.to_datetime(dates['date'], errors='ignore')
dates['date'] = dates['date'].dt.strftime("%m-%Y")
Run Code Online (Sandbox Code Playgroud)
我想选择与给定日期最接近的行,我设置如下:
latest_date = max(dates['date'])
latest_date = latest_date.strftime("%m-%Y")
Run Code Online (Sandbox Code Playgroud)
这给了我05-2020。如何使用的nearest方法选择的日期dates是最接近或等于给latest_date?该示例的预期输出应该是04-2020.
我试过这个:
dates.iloc[dates.index.get_loc(datetime.datetime(latest_date),method='nearest')]
Run Code Online (Sandbox Code Playgroud)
但我得到一个AttributeError: type object 'datetime.datetime' has no attribute 'datetime'. 这是否意味着我没有正确转换日期列?
IIUC,你可以用上列idxmin和说的区别latest_date:
latest_date = '05-2020'
print (dates.loc[(pd.to_datetime(dates['date'])
-pd.to_datetime(latest_date)).abs().idxmin(),
'date'])
'04-2020'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |