首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过索引、选择条件和选择列来筛选pandas数据帧,所有这些都在一起

通过索引、选择条件和选择列来筛选pandas数据帧,所有这些都在一起
EN

Stack Overflow用户
提问于 2015-09-27 16:31:07
回答 1查看 3K关注 0票数 2

我有一个包含多个股票价格的数据框架。

我能够过滤数据帧,使其仅显示stock_name = "BHP",并且仅显示本月数据。

当我加载dataframe (df)时,它有很多列。但我只需要close列和索引来绘制图形。如何添加到此查询中,以便选择的内容为:

1)日期关闭BHP 2)日期=9月3)并且仅显示1]“stock_name”和2]索引(索引已经是日期时间索引)

这一行查询满足条件一和条件二:

代码语言:javascript
复制
bhp = df[(df["stock_name"]=="BHP")]["2015-09-01":"2015-09-25"]

然而,当我尝试第三个,在末尾添加一个列的列表时,我得到了一个系列,而不是一个带有索引的数据帧,用于绘图:

代码语言:javascript
复制
bhp = df[(df["stock_name"]=="BHP")]["2015-09-01":"2015-09-25"]["close"]

我有日期作为索引,如果有帮助的话,还有它自己的列。

EN

回答 1

Stack Overflow用户

发布于 2015-09-27 22:27:53

我在工作中经常这样做。在处理股票和时间维度时,我们通常使用DATExSTOCKxVALUE概念。其中列是股票,索引是日期,值是单个因子。关闭价格将只是一个时间序列与列是stock_names。

旋转此选项:

代码语言:javascript
复制
date        stock    close
2015-08-31   ibm      1.0
2015-08-31   aapl     1.0
2015-08-31   goog     1.0
2015-08-31   bhp      1.0
....

(值只是“接近”的价格)

代码语言:javascript
复制
date        aapl    ibm    goog    bhp    ...
2015-08-31   1.0    1.0     1.0    1.0    ...
2015-08-31   1.0    1.0     1.0    1.0    ...

尝试以下类型的代码:

代码语言:javascript
复制
close_px = df.set_index(['date', 'stock_name'])['close']  # Multiindex Series
bhp = close_px.unstack(level='stock_name')['BHP']  # Stocks as columns, timeseries index, then subset to BHP
res = bhp.loc["2015-09-01", "2015-09-25"]  # Access the rows like a standard timeseries

如果你有多个股票,第二行给你一个收盘价时间序列,你可以很容易地访问股票名称。

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

https://stackoverflow.com/questions/32806015

复制
相关文章

相似问题

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