首页 > 解决方案 > 如何从熊猫特定年份的每周数据中获取年度值?

问题描述

import pandas as pd
import datetime as dt
from pandas_datareader import data, wb

#here I take the stocks from quandl
start = dt.datetime(2015, 1, 1)
end = dt.datetime.today()
stocks = ["WIKI/AAPL", "WIKI/TSLA", "WIKI/IBM", "WIKI/LNKD"]
key = "fmP5pv-nVvhKmjWwF7Fb"
df = data.DataReader(stocks, "quandl", start, end, api_key=key)

# Here I create a dataFrame with the Volume values.
vol = df['Volume']

# Here I aggregate the data of Volume to weekly
vol['week'] = vol.index.week
vol['year'] = vol.index.year
week = vol.groupby(['year','week']).sum()

现在我想查找 2015 年的所有交易量,可能使用 groupby 删除周列带。类似的东西

year = vol.groupby(['2015']).sum()
year.head()

谢谢!

标签: pythonpandas

解决方案


我不确定你到底想在这里做什么。也许如果你详细说明你在寻找什么,或者最终结果应该是什么样子,我会更接近我的答案。

你可以这样分组:

vol.drop('week',axis=1).groupby('year').sum()

Symbols      WIKIAAPL       WIKIIBM      WIKILNKD      WIKITSLA
year                                                           
2015     1.306432e+10  1.306432e+10  1.306432e+10  1.306432e+10
2016     9.685872e+09  9.685872e+09  9.685872e+09  9.685872e+09
2017     6.640747e+09  6.640747e+09  6.640747e+09  6.640747e+09
2018     2.148944e+09  2.148944e+09  2.148944e+09  2.148944e+09

或者只是得到总计2015

vol[vol.year == 2015].sum()

Symbols
WIKIAAPL    1.306432e+10
WIKIIBM     1.306432e+10
WIKILNKD    1.306432e+10
WIKITSLA    1.306432e+10
week        6.886000e+03
year        5.077800e+05
dtype: float64

看起来df所有 4 只股票的成交量值都相同。我会仔细检查一下。


推荐阅读