python - 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'
解决方案
推荐阅读
- ubuntu - Ubuntu 上的 Nuxt.js:找不到插件 app/.nuxt/components/plugin.js
- visual-studio-code - 打开vscode时如何保持所有文件夹折叠?
- flutter - 你能在飞镖中制作一个多值对象类型的地图吗
- java - wait() 是否释放所有锁?
- angular - 错误类型错误:无法读取 SafeSubscriber.settingsService.create.subscribe.loading [as _next] 处未定义的属性“重置”
- google-apps-script - 遍历工作表中的行并比较另一个工作表中的值
- reactjs - 输入'号码 | {百分比:数字;}' 不可分配给类型 'string | 号码 | 未定义的 ts(2322)
- ethereum - 如果我的互联网在合约部署期间中断,会发生什么?我还会失去汽油费吗?
- minio - 无法将 sklearn 模型记录到 minio (s3) 服务器
- node.js - 如何通过集群分发在node js中订阅websocket接收到的信息?