我的csv
有:
Date,Open,High,Low,Close,Adj Close,Volume,dOpen,dHigh,dLow,dClose,dVolume
1/29/93,43.96875,43.96875,43.75,43.9375,26.45393,1003200,0,0,0,0,0
2/1/93,43.96875,44.25,43.96875,44.25,26.642057,480500,0,0.006396588,0.005,0.007112376,0.007111495
2/2/93,44.21875,44.375,44.125,44.34375,26.698507,201300,0.005685856,0.002824859,0.00355366,0.002118644,0.00211883
2/3/93,44.40625,44.84375,44.375,44.8125,26.980742,529400,0.004240283,0.01056338,0.005665722,0.010570825,0.01057119
2/4/93,44.96875,45.09375,44.46875,45,27.093624,531500,0.012667136,0.005574913,0.002112676,0.0041841,0.004183799
我正在做:
spy_data = pd.read_csv('data/SPY_daily.csv')
spy_data['day_of_week'] = spy_data.apply(
lambda row: datetime.strptime(row['Date'], "%m/%d/%Y"))
print(spy_data)
但我犯了个错误
KeyError: ('Date', 'occurred at index Date')
我做错了什么
与其使用
apply
,不如将日期视为适当的日期时间,并使用dt
方法的功能例如
如果您的日期设置为索引:
问题是
pandas.read_csv
将第一列作为数据帧的索引,因此它不在列中。为了避免这种情况,你应该明确地告诉熊猫不要这样做:在使用^{} 函数时,还需要指定
axis=1
,以指示它应该应用于行级别下面应该可以做到这一点:
相关问题 更多 >
编程相关推荐