如何从Pandas DataFrame中提取资源首次出现的年份?
提取首次可用时间的年份方法
嘿,既然你已经把df3的索引转换成了datetime类型,提取年份其实非常简单,这里有几种实用且可靠的方法,结合你的场景来给你说明:
方法1:直接从最早日期索引提取年份
因为df3里存的是Resource_ID 1348的所有时间记录,首次可用的时间就是索引里最小(最早)的日期,直接取它的year属性就行:
# 获取首次出现的年份 first_year = df3.index.min().year print(first_year) # 输出:2011
方法2:从first('1D')的结果中提取
如果你还是想用你之前的df3.first('1D')结果来提取,也可以这么做:
# 先拿到首次出现的那一行,再取索引的年份 first_row = df3.first('1D') first_year = first_row.index.year[0] print(first_year) # 输出:2011
方法3:给df3新增年份列(如果需要保留所有行的年份信息)
要是你想把年份作为一个新列添加到df3里,方便后续分析,直接利用索引的year属性生成即可:
df3['Year'] = df3.index.year # 此时df3会新增一列"Year",每一行的年份都会对应显示,包括首次出现的2011-07-01那行的Year值为2011
小提示
优先用前两种基于datetime类型的方法,比字符串截取(比如str[:4])更可靠,因为datetime会自动处理各种合法的日期格式,不会因为日期字符串格式变化出问题。
内容的提问来源于stack exchange,提问作者BlueMango
相关产品推荐
相关产品推荐

