首页 > 解决方案 > Python:AttributeError:“时间戳”对象没有属性“dt”

问题描述

我是 Python 新手

我有一个 df- df_kpi_1,其中一个音量是 df_kpi_1['YEAR_MONTH']

0       202004
1       201912
2       202002
3       201908
4       202001
         ...  
1115    201911
1116    202004
1117    202006
1118    201909
1119    201909
Name: YEAR_MONTH, Length: 1120, dtype: int64

我试图添加另一列作为财政年度,但出现错误

def FY(x):
    if pd.to_datetime(x,format='%Y%m').dt.month.between(7,12).any():
        return pd.to_datetime(x,format='%Y%m').dt.year +1
    else:
        return pd.to_datetime(x,format='%Y%m').dt.year
df_kpi_1['YEAR_MONTH'].apply(FY)

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-129-a8f657c9f50c> in <module>
      4     else:
      5         return pd.to_datetime(x,format='%Y%m').series.dt.year
----> 6 df_kpi_1['YEAR_MONTH'].apply(FY)

C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds)
   3846             else:
   3847                 values = self.astype(object).values
-> 3848                 mapped = lib.map_infer(values, f, convert=convert_dtype)
   3849 
   3850         if len(mapped) and isinstance(mapped[0], Series):

pandas\_libs\lib.pyx in pandas._libs.lib.map_infer()

<ipython-input-129-a8f657c9f50c> in FY(x)
      1 def FY(x):
----> 2     if pd.to_datetime(x,format='%Y%m').dt.month.between(7,12).any():
      3         return pd.to_datetime(x,format='%Y%m').series.dt.year +1
      4     else:
      5         return pd.to_datetime(x,format='%Y%m').series.dt.year

AttributeError: 'Timestamp' object has no attribute 'dt'

标签: pythonhtml-tabletimestampapply

解决方案


推荐阅读