我有这张桌子:
user_id | datetime | type
1 | 2015-01-01 | 1
1 | 2015-01-01 | 2
1 | 2015-01-01 | 2
1 | 2015-01-02 | 2
2 | 2015-01-01 | 2
2 | 2015-01-02 | 1
2 | 2015-01-02 | 2
我有这个pivot_table
代码:
df = df.pivot_table('type', ['user_id'], ['datetime'], aggfunc=np.mean)
但是,我想要同时应用unique()。sum()函数来满足这个条件,而不是np.mean
:
如果在每个用户的特定日期内同时有
1
和2
,那么我 想要放置3
,如果我想放置的特定日期只有1
2
等等。
例如,这里是所需的输出如下:
user_id | 2015-01-01 | 2015-01-02
1 | 3 | 2
2 | 2 | 3
有什么想法吗?
答案 0 :(得分:2)
这是你想要的吗?
In [50]: df.pivot_table('type', ['user_id'], ['datetime'], aggfunc=lambda x: x.unique().sum())
Out[50]:
datetime 2015-01-01 2015-01-02
user_id
1 3 2
2 2 3