【发布时间】:2017-05-26 14:47:01
【问题描述】:
所以我得到了这个 DataFrame,它的构建方式使得对于列 id 等于 2,我们在列 num 和 my_date 中有两个不同的值:
import pandas as pd
a = pd.DataFrame({'id': [1, 2, 3, 2],
'my_date': [datetime(2017, 1, i) for i in range(1, 4)] + [datetime(2017, 1, 1)],
'num': [2, 3, 1, 4]
})
为方便起见,这是可视化的 DataFrame:
如果我想计算每个 id 的唯一值的数量,我会这样做
grouped_a = a.groupby('id').agg({'my_date': pd.Series.nunique,
'num': pd.Series.nunique}).reset_index()
grouped_a.columns = ['id', 'num_unique_num', 'num_unique_my_date']
这给出了这个奇怪的 (?) 结果:
看起来datetime(在 Pandas 中转换为 datetime64[ns])类型上的唯一值计数不起作用?
【问题讨论】:
标签: python datetime pandas dataframe group-by