Jan*_*Jan 3 python dataframe pandas
作为的初学者pandas,我想知道如何选择过去的最接近日期?例如,我有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
Run Code Online (Sandbox Code Playgroud)
Terminartwith df.loc(),即:
df.loc[df['Terminart'] == 'Hauptversammlung']
Run Code Online (Sandbox Code Playgroud)
仅选择两行(正确)。
06/22/16)吗?默认情况下,数据框未排序。
您可以转换to_datetime列Datum,然后首先将其过滤为无差异(timedelta = 0),然后通过idxmax以下公式找到最大值的索引:
注意:样品在上次日期时间更改以进行更好的测试
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
Run Code Online (Sandbox Code Playgroud)
df['Datum'] = pd.to_datetime(df.Datum, format='%d.%m.%y')
date = dt.datetime.now().date()
print (date)
2016-07-17
diff = (df.Datum - date)
print (diff)
0 -25 days
1 -129 days
2 -263 days
3 -354 days
4 -439 days
5 -445 days
6 -493 days
7 2 days
Name: Datum, dtype: timedelta64[ns]
indexmax = (diff[(diff < pd.to_timedelta(0))].idxmax())
print (df.ix[[indexmax]])
Terminart Info Datum Ergebnis
0 Hauptversammlung NaN 2016-06-22 NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3110 次 |
| 最近记录: |