【发布时间】:2019-01-03 04:14:26
【问题描述】:
我想在 pandas 数据框中添加一个表示月末日期的列。基于这个answer,我尝试了以下方法:
import numpy as np
import pandas as pd
dates = ['2014-06-02', '2014-06-03', '2014-06-04', '2014-06-05', '2014-06-06']
sp500_index = [1924.969971, 1924.23999, 1927.880005, 1940.459961, 1949.439941]
df_sp500 = pd.DataFrame({'Date' : dates, 'Close' : sp500_index})
sp500['Date'] = pd.to_datetime(sp500['Date'], format='%Y-%m-%d')
df_sp500['EOM'] = df_sp500['Date'].dt.ceil('M') # breaks on this line
#df_sp500 = df_sp500[df_sp500['Date'] == df_sp500['EOM']]
df_sp500
但我收到此错误消息:
AttributeError: 只能使用带有 datetimelike 值的 .dt 访问器
我想添加此列的原因是使用它来过滤除 EOM 日期之外的所有日期,如注释掉的行中所示。
【问题讨论】:
-
你有
df_sp500 =和sp500['Date'] =。是哪个? -
对 pandas 非常陌生(来自 R)。意图是
df_sp500 =创建数据框和sp500['Date'] =行将Date字段从字符串转换为日期时间。
标签: python python-3.x pandas dataframe