如何从DatetimeIndex提取唯一年份列表?已尝试drop_duplicates未果
解决DatetimeIndex提取唯一年份的问题
嘿,你遇到的问题很常见——你没有实际调用drop_duplicates方法!你写的temp.year.drop_duplicates只是引用了这个方法的对象,而不是执行它去重,所以才会返回那个方法绑定的信息。
正确的解决步骤:
- 首先调用
drop_duplicates()方法(注意括号),得到去重后的年份索引:
temp.year.drop_duplicates()
执行后会返回:
Int64Index([2017, 2018], dtype='int64')
- 如果需要转成你想要的列表格式,加上
.tolist()即可:
temp.year.drop_duplicates().tolist()
这样就能得到预期的结果:
[2017, 2018]
其他可选方法:
- 用
numpy.unique也能实现(需要先导入numpy):
import numpy as np np.unique(temp.year).tolist()
- 或者用Python内置的
set(注意:set会打乱顺序,但这里年份顺序比较简单,结果也正确):
list(set(temp.year))
推荐用第一种drop_duplicates().tolist()的方式,因为它能保留原DatetimeIndex中年份出现的先后顺序。
内容的提问来源于stack exchange,提问作者Yan Tian
相关产品推荐
相关产品推荐

