有两个数据框。首先是这样的:
print df1
id date month is_buy
0 17 2015-01-16 2015-01 1
1 17 2015-01-26 2015-01 1
2 17 2015-01-27 2015-01 1
3 17 2015-02-11 2015-02 1
4 17 2015-03-14 2015-03 1
5 18 2015-01-28 2015-01 1
6 18 2015-02-12 2015-02 1
7 18 2015-02-25 2015-02 1
8 18 2015-03-04 2015-03 1
Run Code Online (Sandbox Code Playgroud)
在第二个数据框中,有一些来自第一个的按月汇总的数据:
df2 = df1[df1['is_buy'] == 1].groupby(['id', 'month']).agg({'is_buy': np.sum})
print df2
id month buys
0 17 2015-01 3
1 17 2015-02 1
2 17 2015-03 1
3 18 2015-01 …Run Code Online (Sandbox Code Playgroud) 也许这很容易,但是我是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)