Art*_*ley 2 python datetime pandas
也许这很容易,但是我是Pandas的新手:我的DataFrame由“ id”(int64)和“ datetime”(datetime64)组成:
d = {'id' : Series([1., 2., 3., 2., 3., 1., 1., 3., 1., 2.]),
'datetime' : Series(['01.02.2015', '01.02.2015',
'01.03.2015', '03.01.2015', '06.02.2015', '01.04.2015', '18.03.2015',
'02.02.2015', '03.02.2015', '02.04.2015'])}
df = DataFrame(d)
df["datetime"] = to_datetime(df["datetime"], dayfirst=True)
print(df)
Run Code Online (Sandbox Code Playgroud)
我需要获取具有唯一“ id”和最后一个适当的“ datetime”的新DataFrame。换句话说,我想得到这样的东西:
Out:
datetime id
0 2015-04-01 00:00:00 1
1 2015-04-02 00:00:00 2
2 2015-03-01 00:00:00 3
Run Code Online (Sandbox Code Playgroud)
sort在'datetime'上,然后drop_duplicates使用param 调用take_last=True:
In [135]:
df.sort(columns=['datetime']).drop_duplicates(subset='id', take_last=True)
Out[135]:
datetime id
2 2015-03-01 3
5 2015-04-01 1
9 2015-04-02 2
Run Code Online (Sandbox Code Playgroud)
更新资料
sort自以来已弃用0.18.1,您需要使用sort_values:
df.sort_values(by=['datetime']).drop_duplicates(subset='id', keep='last')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1429 次 |
| 最近记录: |