使用pivot_table

时间:2017-01-29 00:38:55

标签: python pandas numpy dataframe

我有这张桌子:

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

  

如果在每个用户的特定日期内同时有12,那么我   想要放置3,如果我想放置的特定日期只有1   2等等。

例如,这里是所需的输出如下:

user_id | 2015-01-01 | 2015-01-02 
1       | 3          | 2 
2       | 2          | 3 

有什么想法吗?

1 个答案:

答案 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