DataFrame datetime64列调用Period报错ValueError,寻求解决方法
解决方法
你的报错原因是p.Period()仅支持单个日期/时间值,而你传入的是整个time列(Series对象),无法批量处理。下面是两种可行的解决方案:
方法一:直接使用dt访问器(推荐)
利用pandas为datetime类型Series提供的dt访问器,直接调用内置的days_in_month属性:
dt['NB_DAYS'] = dt['time'].dt.days_in_month
方法二:转为Period类型后处理
先通过dt.to_period('M')将datetime列批量转为月份周期的Period对象,再获取当月天数:
dt['NB_DAYS'] = dt['time'].dt.to_period('M').dt.days_in_month
这两种方法都能批量处理整个DataFrame列,无需循环操作单个元素。
内容的提问来源于stack exchange,提问作者ImFabien75
相关产品推荐
相关产品推荐

