Python如何从日期获取星期几?解决Series不可哈希错误
问题解决:批量映射星期数到星期名称报错的处理
错误原因
你直接用Pandas Series作为字典索引会报错unhashable type: 'Series',因为字典仅支持单个可哈希值作为键,无法直接接收Series类型的批量索引。
解决方案
方法1:使用map()方法批量映射
注意:Pandas的dt.dayofweek返回值范围是0(周一)到6(周日),你的字典键值对应关系和这个不匹配,需要先调整字典,再用map()方法完成批量映射:
# 调整字典,键对应dt.dayofweek的返回值 day_of_week = { 0: "monday", 1: "tuesday", 2: "wednesday", 3: "thursday", 4: "friday", 5: "saturday", 6: "sunday" } # 使用map完成批量映射 september_2022["day_of_week"] = september_2022["started_at"].dt.dayofweek.map(day_of_week)
方法2:直接用Pandas内置方法获取星期名称(更简便)
无需手动维护字典,用dt.day_name()直接生成星期名称,再转小写即可:
september_2022["day_of_week"] = september_2022["started_at"].dt.day_name().str.lower()
内容的提问来源于stack exchange,提问作者Cornelias
相关产品推荐
相关产品推荐

