首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期对数据帧进行切片已完成,但将切片输入到变量不起作用

按日期对数据帧进行切片已完成,但将切片输入到变量不起作用
EN

Stack Overflow用户
提问于 2019-07-22 02:23:16
回答 2查看 53关注 0票数 0

这是通过datetime对象切片数据帧来完成的。但问题是,切片数据没有输入到变量中。

该变量应为dataframe。当然,当我对数据帧进行切片时,切片的类型是数据帧。

代码语言:javascript
复制
df.tail()
Out[37]: 
              Price     Open     High  ...   Change %  A Day %  OC %
Date                                   ...                          
2019-07-10  13435.0  13427.5  13545.0  ...       0.04     1.18  0.06
2019-07-11  13455.0  13432.5  13647.5  ...       0.15     1.75  0.17
2019-07-12  13552.5  13457.5  13645.0  ...       0.72     2.11  0.71
2019-07-15  13545.0  13557.5  13662.5  ...      -0.06     2.65 -0.09
2019-07-16  13440.5  13552.5  13594.0  ...      -0.77     1.23 -0.83


import datetime as dt
df.set_index('Date', inplace=True)
start = dt.datetime(2019,1,1)
end = dt.datetime.today().strftime('%Y-%m-%d')

df[start:end]

代码df[start:end]运行得很好。但是,当我尝试variable = df[start:end]时,控制台显示

"KeyError:‘日期’“

我希望将数据帧df[start:end]输入到一个变量中。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-22 02:43:29

这对我来说很有效,你可以尝试的一件事是确保你的日期是正确的格式。

如果不是这样做:

代码语言:javascript
复制
df['Date']  = pd.to_datetime(df['Date'])

票数 0
EN

Stack Overflow用户

发布于 2019-07-22 02:32:20

您的startend变量的格式可能不同:

代码语言:javascript
复制
start = dt.datetime(2019,1,1) #datetime
end = dt.datetime.today().strftime('%Y-%m-%d') #str

为了让索引像预期的那样工作,一个建议是也将start转换为string:

代码语言:javascript
复制
start = dt.datetime(2019,1,1).strftime('%Y-%m-%d') #str
end = dt.datetime.today().strftime('%Y-%m-%d') #str

这样,假设索引上的日期也是一个str,您的命令应该可以工作:

代码语言:javascript
复制
# if index is datetime, convert to string:
# df.index = df.index.apply(lambda x: .strftime('%Y-%m-%d'))

df[start:end]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57135878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档