手动输出所有的季报列表
season_all=['2005q1','2005q2','2005q3','2005q4',
'2006q1','2006q2','2006q3','2006q4',
'2007q1','2007q2','2007q3','2007q4',
'2008q1','2008q2','2008q3','2008q4',
'2009q1','2009q2','2009q3','2009q4',
'2010q1','2010q2','2010q3','2010q4',
'2011q1','2011q2','2011q3','2011q4',
'2012q1','2012q2','2012q3','2012q4',
'2013q1','2013q2','2013q3','2013q4',
'2014q1','2014q2','2014q3','2014q4',
'2015q1','2015q2','2015q3','2015q4',
'2016q1','2016q2','2016q3','2016q4',
'2017q1','2017q2','2017q3','2017q4',
'2018q1','2018q2','2018q3']
q1=['2005q1','2006q1','2007q1','2008q1','2009q1','2010q1','2011q1',
'2012q1','2013q1''2014q1','2015q1','2016q1','2017q1','2018q1']
q2=['2005q2','2006q2','2007q2','2008q2','2009q2','2010q2','2011q2',
'2012q2','2013q2''2014q2','2015q2','2016q2','2017q2','2018q2']
q3=['2005q3','2006q3','2007q3','2008q3','2009q3','2010q3','2011q3',
'2012q3','2013q3''2014q3','2015q3','2016q3','2017q3','2018q3']
q4=['2005q4','2006q4','2007q4','2008q4','2009q4','2010q4','2011q4',
'2012q4','2013q4''2014q4','2015q4','2016q4','2017q4']
得到所有单季度的净利润
all_single_investment=get_fundamentals(query(valuation.code))
for i in season_all:
df = get_fundamentals(query(
valuation.code,income.np_parent_company_owners
), statDate=i)
df.columns=(['code',i])
all_single_investment=pd.merge(all_single_investment,df,on='code')
对单季度净利润进行处理,得到所有季度的净利润
all_investment=pd.DataFrame()
all_investment['code']=all_single_investment['code']
for i in season_all:
if i in q1:
all_investment[i]=all_single_investment[i]
elif i in q2:
all_investment[i]=all_single_investment[i] all_single_investment[season_all[(season_all.index(i)-1)]]
elif i in q3:
all_investment[i]=all_single_investment[i] all_single_investment[season_all[(season_all.index(i)-1)]] all_single_investment[season_all[(season_all.index(i)-2)]]
else:
all_investment[i]=all_single_investment[i] all_single_investment[season_all[(season_all.index(i)-1)]] all_single_investment[season_all[(season_all.index(i)-2)]] all_single_investment[season_all[(season_all.index(i)-3)]]
import datetime
from jqdata import *
import pandas as pd
from six import StringIO
#手动输出所有的季报列表
season_all=['2005q1','2005q2','2005q3','2005q4',
'2006q1','2006q2','2006q3','2006q4',
'2007q1','2007q2','2007q3','2007q4',
'2008q1','2008q2','2008q3','2008q4',
'2009q1','2009q2','2009q3','2009q4',
'2010q1','2010q2','2010q3','2010q4',
'2011q1','2011q2','2011q3','2011q4',
'2012q1','2012q2','2012q3','2012q4',
'2013q1','2013q2','2013q3','2013q4',
'2014q1','2014q2','2014q3','2014q4',
'2015q1','2015q2','2015q3','2015q4',
'2016q1','2016q2','2016q3','2016q4',
'2017q1','2017q2','2017q3','2017q4',
'2018q1','2018q2','2018q3']
q1=['2005q1','2006q1','2007q1','2008q1','2009q1','2010q1','2011q1',
'2012q1','2013q1''2014q1','2015q1','2016q1','2017q1','2018q1']
q2=['2005q2','2006q2','2007q2','2008q2','2009q2','2010q2','2011q2',
'2012q2','2013q2''2014q2','2015q2','2016q2','2017q2','2018q2']
q3=['2005q3','2006q3','2007q3','2008q3','2009q3','2010q3','2011q3',
'2012q3','2013q3''2014q3','2015q3','2016q3','2017q3','2018q3']
q4=['2005q4','2006q4','2007q4','2008q4','2009q4','2010q4','2011q4',
'2012q4','2013q4''2014q4','2015q4','2016q4','2017q4']
#得到所有单季度的净利润
all_single_investment=get_fundamentals(query(valuation.code))
for i in season_all:
df = get_fundamentals(query(
valuation.code,income.np_parent_company_owners
), statDate=i)
df.columns=(['code',i])
all_single_investment=pd.merge(all_single_investment,df,on='code')
all_single_investment
#对单季度净利润进行处理,得到所有季度的净利润
all_investment=pd.DataFrame()
all_investment['code']=all_single_investment['code']
for i in season_all:
if i in q1:
all_investment[i]=all_single_investment[i]
elif i in q2:
all_investment[i]=all_single_investment[i]+all_single_investment[season_all[(season_all.index(i)-1)]]
elif i in q3:
all_investment[i]=all_single_investment[i]+all_single_investment[season_all[(season_all.index(i)-1)]]+all_single_investment[season_all[(season_all.index(i)-2)]]
else:
all_investment[i]=all_single_investment[i]+all_single_investment[season_all[(season_all.index(i)-1)]]+all_single_investment[season_all[(season_all.index(i)-2)]]+all_single_investment[season_all[(season_all.index(i)-3)]]
all_investment.head()




