2024-2024历年网易跳动Python面试真题解析,基于Python获取股票分析,数据分析实战_python股票分析快速接口,Python面试你必须要知道的那些知识

收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

正文

| date | trade_date | 交易日期 |
| open | open | 开盘价 |
| high | high | 最高价 |
| close | close | 收盘价 |
| | pre_close | 昨收盘价 |
| low | low | 最低价 |
| volume | vol | 成交量 |
| price_change | change | 价格变动、涨跌额 |
| p_change | pct_chg | 涨跌幅 |
| ma5 | | 5日均价 |
| ma10 | | 10日均价 |
| ma20 | | 20日均价 |
| v_ma5 | | 5日均量 |
| v_ma10 | | 10日均量 |
| v_ma20 | | 20日均量 |
| turnover | | 换手率[注:指数无此项] |
| | amount | 成交额 |

老版本中date为index,不是具体column。

2.2. 获取历史行情数据——指数

上证指数、深圳成指、沪深300指数、上证50 、中小板、创业板等。

上证指数代码为“000001.SH”,老版本代码为“sh”;深成指数代码为“399001.SZ”,老版本为“399001”或“sz”。

#获取沪深指数
    def get_hs_index(self,start_date,end_date):
        if self.pro:          
            self.hs_index = ts.pro_bar(ts_code= self.code, asset='I', start_date=start_date, end_date=end_date)
        else:
            #旧接口,不用注册
            index_code={
 '000001.SH':'sh','399001.SZ':'399001','000300.SH':'000016.SH','sz50':'sz50','399005.SZ':'zxb','399006.SZ':'cyb'}
            
            self.his_dat = ts.get_hist_data(code=index_code[self.code],start=start_date, end=end_date)
            #把索引赋值给trade_date
            #self.his_dat['trade_date'] = self.his_dat.index
            self.his_dat = self.his_dat.reset_index()
                            
            self.his_dat['ts_code'] = self.code
            #参照pro接口,修改列名
            self.his_dat = self.his_dat.rename(columns={
 'date':'trade_date','volume':'vol','price_change':'change','p_change':'pct_chg'})
        #筛选列            
        self.his_dat = self.his_dat[self.columns] #.reset_index()           
        
        return self.hs_index

2.3. 获取历史行情数据——情绪指数

目前pro版本国外已经支持如下指数数据(数据来源:https://tushare.pro/):

TS指数代码指数名称
XIN9富时中国A50指数 (富时A50)
HSI恒生指数
DJI道琼斯工业指数
SPX标普500指数
IXIC纳斯达克指数
FTSE富时100指数
FCHI法国CAC40指数
GDAXI德国DAX指数
N225日经225指数
KS11韩国综合指数
AS51澳大利亚标普200指数
SENSEX印度孟买SENSEX指数
IBOVESPA巴西IBOVESPA指数
RTS俄罗斯RTS指数
TWII台湾加权指数
CKLSE马来西亚指数
SPTSX加拿大S&P/TSX指数
CSX5PSTOXX欧洲50指数

使用方法:

#美股指数
    def get_us_index(self,start_date,end_date):
        if self.pro:          
            self.us_index = self.stock.index_global(ts_code= self.us_code, start_date=start_date, end_date=end_date)
            self.us_index = self.us_index[self.columns]
        
        return self.us_index

2.4. 获取分时数据

升级pro版本,可以获取3年的数据,而老版本 只能获取1个月的分时数据。

#获取分钟级别数据    
    def get_tickshare_dat(self,freq,start_date, end_date):
        if self.pro: 
            start_date=re.sub('\D','',start_date)    
            end_date = re.sub('\D','',end_date) 
            freq = freq + 'min'    
            self.tickshare_dat = ts.pro_bar(ts_code=self.code, freq = freq,start_date=start_date, end_date=end_date)
            self.tickshare_dat['vol'] = self.tickshare_dat['vol'] /100
        else:
            # ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
            self.tickshare_dat = ts.get_hist_data(code=self.code, ktype = freq,start=start_date, end=end_date)
            self.tickshare_dat['ts_code'] = self.code
            self.tickshare_dat = self.tickshare_dat.reset_index()
            self.tickshare_dat = self.tickshare_dat.rename(columns={
 'date':'trade_time','volume':'vol'})
            self.tickshare_dat['trade_date'] = self.tickshare_dat['trade_time'].apply(lambda x:re.sub('\D','',x[0:10]))
            self.setCodebyOld()                            
            self.tickshare_dat['ts_code'] = self.code
        self.tickshare_dat = self.tickshare_dat[['ts_code','trade_time','open','high','close','low','vol','trade_date']]                   
            
        return self.tickshare_dat
注:输入freq为字符型数字,1/5/15/30/60

2.5. 获取股票基本信息
#获取股票基本面信息
    def get_ShareInfo(self,trade_date):
        if self.pro:
            self.shareInfo = self.stock.daily_basic(ts_code=self.code, trade_date=trade_date) #, fields='ts_code,trade_date,turnover_rate,volume_ratio,pe,pb')
        else:
            self.shareInfo = ts.get_stock_basics()
            
        print(self.shareInfo)
2.6. 获取复权数据
# 获取复权数据
    def get_h_dat(self,start_date,end_date,fq='hfq'):
        #self.h_dat = ts.get_h_data(code=self.code, autype='hfq',start=start_date, end=end_date)
        self.h_dat = ts.pro_bar(ts_code=self.code, adj=fq, start_date=start_date, end_date=end_date)
                                                                         
        return self.h_dat
3. 数据存储在本地Mongo数据库中
class Stock_Collection(object):
    def __init__(self,db_name):
        self.db_name = db_name
        client = pymongo.MongoClient('mongodb://stock:stock@localhost:27017/stock')
        self.db = client[self.db_name]
        
    def insertdatas(self,name,datas):
        collection = self.db[name]   
        
        collection.insert(json.loads(datas.T.to_json()).values())
        
    def getDistinctCode(self,name):
        collection = self.db[name]
        
        code = collection.distinct('ts_code')   
        
        return code
    
    def setIndex_Code(self):
        self.sentiment_index = ['IXIC','DJI','HSI'] # 情绪指数
        self.sentiment_index_column = ['trade_date','open','high','close','low','change','pct_chg']
        self.index_daily = ['000001.SH', '399001.SZ']
        self.index_daily_column = ['trade_date','open','high','close','low','vol','change','pct_chg']
        
    def setCode(self,code):
        self.code = code #['002230.SZ'] #, '000547.SZ', '601318.SH', '601208.SH', '600030.SH', '000938.SZ', '002108.SZ', '600967.SH']
        self.stock_column = ['trade_date','open','high','close','low','vol','change','pct_chg']
    # 构造LSTM模型训练集    
    def generate_train_datas(self,db_name,code_name,filename):
        collection = self.db[db_name]
        self.out_code = code_name
        #查询条件“字典”
        query_dict = {
 'ts_code':'1','trade_date':{
 '$gt':'20171001'}}
        #col_name = {'_id':0,'trade_date':1,'ts_code':1,'open':1,'high':1,'close':1,'low':1,'vol':1,'change':1,'pct_chg':1}
        col_name = {
 '_id':0}
        for d in self.stock_column:
            col_name[d] = 1

        query_dict['ts_code'] = self.out_code
        #注意时间排序
        df = pd.DataFrame(list(collection.find(query_dict,col_name).sort([('trade_date',1)])))
        df['trade_date'] = df['trade_date'].apply(lambda x:re.sub('\D','',x)) #去掉日期中的“-”符号
        self.code.remove(self.out_code)  # 删除输出股票代码
        #构造股票数据集
        n = 0
        k = 0
        columns = self.stock_column.copy()
        columns.remove('trade_date') 
        print('Start!')
        #self.code长度为1,下面循环不执行
        for code in self.code:
            query_dict['ts_code'] = code
            df1 = pd.DataFrame(list(collection.find(query_dict,col_name).sort([('trade_date',1)])))
            df1['trade_date'] = df1['trade_date'].apply(lambda x:re.sub('\D','',x)) #去掉日期中的“-”符号
            #按日期合并两个表
            #df =pd.merge(left=df,right=df1,how='left',on=['trade_date'])
            #以上证为基准
            df =pd.merge(left=df,right=df1,how='inner',on=['trade_date'])
            # 处理合并表,字段重复的情况,需要把_x,_y新命名字段,下轮继续
            cols_dict = {
 }
            for cols in columns:
                cols_dict[cols+'_x'] = cols + str(n)
                cols_dict[cols+'_y'] = cols + str(n+1)             
            if k==0:
                df = df.rename(columns=cols_dict)    
                n = n + 2
                k = 1
            else:
                k = 0
            print('code 1')
            print(df)
        #构造数据集——上证、深成指数
        query_dict = {
 'ts_code':'1'}
        columns = self.index_daily_column.copy() #默认list为传址,需要赋值新list
        columns.remove('trade_date')   
        print(self.index_daily_column)      
        for index_daily in self.index_daily:
            query_dict['ts_code'] = index_daily
            col_name = {
 '_id':0}
            for d in self.index_daily_column:
                col_name[d] = 1
            df1 = pd.DataFrame(list(collection.find(query_dict,col_name).sort([('trade_date',1)])))
            df1['trade_date'] = df1['trade_date'].apply(lambda x:re.sub('\D','',x)) #去掉日期中的“-”符号
            #按日期合并两个表
            df =pd.merge(left=df,right=df1,how='left',on=['trade_date'])
            cols_dict = {
 }
            for cols in columns:
                cols_dict[cols+'_x'] = cols + str(n)
                cols_dict[cols+'_y'] = cols + str(n+1)
            if k==0:
                df = df.rename(columns=cols_dict)    
                n = n + 2
                k = 1
            else:
                k = 0
         
            print(df)
        #构造数据集——情绪指数


如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费**学习**大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。



### 一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。



![](https://i-blog.csdnimg.cn/blog_migrate/0426b4c2e3d69852ceb846faa8ff365f.png)

### 二、学习软件



工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。



![](https://img-blog.csdnimg.cn/img_convert/8c4513c1a906b72cbf93031e6781512b.png)



### 三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

![](https://img-blog.csdnimg.cn/img_convert/eec417a3d4d977b313558a11d3c13e43.png)



### 四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。



![](https://img-blog.csdnimg.cn/img_convert/ec690501ea1dbe2cb209cbf4013c2477.png)  

![](https://img-blog.csdnimg.cn/img_convert/3eaeaa6747419c9d86c72e0d10d0a6a2.png)



### 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。



![](https://i-blog.csdnimg.cn/blog_migrate/16e27ee7dfd6e25a4f43c8cc6ef06aa7.png)



### 五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

![](https://i-blog.csdnimg.cn/blog_migrate/3443f3d934f11d6666b3767ac0897763.png)

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)**
![img](https://img-blog.csdnimg.cn/img_convert/6629f63f3afe8f86ea443ec705d32c32.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)**
[外链图片转存中...(img-BjSr8zSd-1713788769485)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值