Pandas在pas中选择最近的日期

2024-10-01 13:41:24 发布

您现在位置:Python中文网/ 问答频道 /正文

作为一个使用pandas的初学者,我想知道如何选择过去最接近的日期?E、 g.我有一个dataframe如下:

               Terminart                        Info     Datum  Ergebnis
0       Hauptversammlung                         NaN  22.06.16       NaN
1        Jahresabschluss                        2015  10.03.16       NaN
2         Quartalszahlen                     Q3 2015  28.10.15       NaN
3         Quartalszahlen                     Q2 2015  29.07.15       NaN
4       Hauptversammlung                         NaN  05.05.15       NaN
5         Quartalszahlen                     Q1 2015  29.04.15       NaN
6  Bilanzpressekonferenz                        2014  12.03.15       NaN
7  Bilanzpressekonferenz  Jahrespressekonferenz 2015  12.03.15       NaN


我可以用df.loc()选择Terminart,即: ^{pr2}$

只选择两行(正确)。


但是,如何选择过去最接近的日期?这里是第一行(06/22/16)吗?默认情况下不排序数据帧。

Tags: infodataframepandasnan初学者q3q2q1
2条回答

首先使用to_datetime()将列“Datum”转换为日期字段,然后使用sort_values()按日期对数据框进行排序,然后打印出第一行:

df['Datum'] = pd.to_datetime(df['Datum'], format='%d.%m.%y')
df.sort_values('Datum')
print(df.iloc[0])

您可以转换^{}Datum,然后首先过滤为无差异(timedelta=0),然后通过^{}找到最大值的索引:

注意:为了更好的测试,样本中的最后一个日期更改了

import pandas as pd
import datetime as dt

print (df)
                                     Terminart     Info     Datum  Ergebnis
0                             Hauptversammlung      NaN  22.06.16       NaN
1                              Jahresabschluss     2015  10.03.16       NaN
2                               Quartalszahlen  Q3 2015  28.10.15       NaN
3                               Quartalszahlen  Q2 2015  29.07.15       NaN
4                             Hauptversammlung      NaN  05.05.15       NaN
5                               Quartalszahlen  Q1 2015  29.04.15       NaN
6                        Bilanzpressekonferenz     2014  12.03.15       NaN
7  Bilanzpressekonferenz Jahrespressekonferenz     2015  19.07.16       NaN
^{pr2}$

相关问题 更多 >