首页 > 解决方案 > 基于另一列的唯一值的 Pandas 数据帧非唯一值

问题描述

我有一个Pandas数据框,我想获取独特事件的所有独特年份的列表。我不关心DIRECTION列,我只想要一个DATE's 列表。我不一定希望DATE's 是唯一的,因为有时同一日期会有多个ID's,但我不需要同一日期的所有DIRECTION's。

熊猫 df

ID DIRECTION DATE
ABA Z 2019
ABA N 2019
ABA E 2019
ABB Z 2019
ABB N 2019
ABB E 2019
ABC Z 2020
ABC N 2020
ABC E 2020

预期产出

[2019, 2019, 2020]

实际输出

[2019, 2020]

当前代码

ids=df['ID'].unique().tolist()
dates=df['DATE'].unique().tolist()
labels, counts = np.unique(dates, return_counts=True)

**

len(counts) == 2
#I want len(counts) == 3

标签: python-3.xpandasnumpypandas-groupby

解决方案


您想要每个 id 的唯一日期,然后将它们连接到一个数组中:

np.concatenate(df.groupby('ID')['DATE'].unique().values)

输出:

array([2019, 2019, 2020])

推荐阅读