精华内容
下载资源
问答
  • python 获取股票数据 tushare使用

    千次阅读 2019-10-03 15:34:48
    # 本节 讲解 pandas_datareader和tushare包 common 和pro 获取股票数据 import pandas_datareader.data as web import datetime #获取上证指数的2017.1.1日至今的交易数据 df_stockload = web.DataReader("000001....
    '''
    # 本节 讲解 pandas_datareader和tushare包 common 和pro 获取股票数据
    
    import pandas_datareader.data as web
    import datetime
    #获取上证指数的2017.1.1日至今的交易数据
    df_stockload = web.DataReader("000001.SS", "yahoo", datetime.datetime(2017,1,1), datetime.date.today())
    
    print(df_stockload.head())  # 查看前几行
    """
                  High     Low    Open   Close  Volume  Adj Close
    Date                                                         
    2017-01-03  3136.5  3105.3  3105.3  3135.9  141600     3135.9
    2017-01-04  3160.1  3130.1  3133.8  3158.8  167900     3158.8
    2017-01-05  3168.5  3154.3  3157.9  3165.4  174700     3165.4
    2017-01-06  3172.0  3153.0  3163.8  3154.3  183700     3154.3
    2017-01-09  3173.1  3147.7  3148.5  3171.2  171700     3171.2
    """
    print(df_stockload.tail())  # 查看末尾几行
    """
                  High     Low    Open   Close  Volume  Adj Close
    Date                                                         
    2019-03-04  3090.8  3006.9  3015.9  3027.6  525600     3027.6
    2019-03-05  3055.0  3009.4  3019.9  3054.2  424100     3054.2
    2019-03-06  3103.8  3050.1  3060.4  3102.1  555000     3102.1
    2019-03-07  3129.9  3075.0  3103.7  3106.4  583800     3106.4
    2019-03-08  3075.0  2969.6  3038.3  2969.9  577900     2969.9
    """
    
    print (df_stockload.columns)#查看列索引信息
    """
    Index(['High', 'Low', 'Open', 'Close', 'Volume', 'Adj Close'], dtype='object')
    """
    print (df_stockload.index)#查看行索引信息
    """
    DatetimeIndex(['2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06',
                   '2017-01-09', '2017-01-10', '2017-01-11', '2017-01-12',
                   '2017-01-13', '2017-01-16',
                   ...
                   '2019-02-25', '2019-02-26', '2019-02-27', '2019-02-28',
                   '2019-03-01', '2019-03-04', '2019-03-05', '2019-03-06',
                   '2019-03-07', '2019-03-08'],
                  dtype='datetime64[ns]', name='Date', length=530, freq=None)
    """
    print(df_stockload.shape)#查看形状
    """
    (530, 6)
    """
    # 接下来查看各列交易数据描述性的统计信息,如最小值、最大值、均值、标准差等
    print (df_stockload.describe())#查看各列数据描述性统计
    """
             High     Low    Open   Close    Volume  Adj Close
    count   530.0   530.0   530.0   530.0     530.0      530.0
    mean   3079.9  3044.5  3061.5  3064.8  172601.3     3064.8
    std     281.0   286.0   283.5   284.1   62788.0      284.1
    min    2488.5  2440.9  2446.0  2464.4   88200.0     2464.4
    25%    2802.3  2754.8  2776.8  2786.1  134200.0     2786.1
    50%    3164.6  3134.3  3148.2  3153.9  159200.0     3153.9
    75%    3290.1  3261.5  3274.5  3275.9  193600.0     3275.9
    max    3587.0  3534.2  3563.6  3559.5  583800.0     3559.5
    """
    
    # 接下来查看交易数据概览信息,如每列数据的类型、个数、是否存在缺失等等
    print(df_stockload.info())#查看缺失及每列数据类型
    """
    <class 'pandas.core.frame.DataFrame'>
    DatetimeIndex: 530 entries, 2017-01-03 to 2019-03-08
    Data columns (total 6 columns):
    High         530 non-null float64
    Low          530 non-null float64
    Open         530 non-null float64
    Close        530 non-null float64
    Volume       530 non-null int64
    Adj Close    530 non-null float64
    dtypes: float64(5), int64(1)
    memory usage: 29.0 KB
    None
    """
    import matplotlib.pyplot as plt
    
    #绘制收盘价
    df_stockload.Close.plot(c='b')
    plt.legend(['Close','30ave','60ave'],loc='best')
    plt.show()
    
    '''
    
    
    '''
    # get_hist_data api讲解
    
    import datetime
    
    import pandas as pd
    import tushare as ts
    df_sh=ts.get_hist_data('sh',start='2017-01-01',end=datetime.datetime.now().strftime('%Y-%m-%d'))
    print(df_sh.info())#查看交易数据概览信息
    
    """
    <class 'pandas.core.frame.DataFrame'>
    Index: 530 entries, 2019-03-08 to 2017-01-03
    Data columns (total 13 columns):
    open            530 non-null float64
    high            530 non-null float64
    close           530 non-null float64
    low             530 non-null float64
    volume          530 non-null float64
    price_change    530 non-null float64
    p_change        530 non-null float64
    ma5             530 non-null float64
    ma10            530 non-null float64
    ma20            530 non-null float64
    v_ma5           530 non-null float64
    v_ma10          530 non-null float64
    v_ma20          530 non-null float64
    dtypes: float64(13)
    memory usage: 58.0+ KB
    None
    """
    
    print(df_sh.axes)# 查看行和列的轴标签
    
    """
    [Index(['2019-03-08', '2019-03-07', '2019-03-06', '2019-03-05', '2019-03-04',
           '2019-03-01', '2019-02-28', '2019-02-27', '2019-02-26', '2019-02-25',
           ...
           '2017-01-16', '2017-01-13', '2017-01-12', '2017-01-11', '2017-01-10',
           '2017-01-09', '2017-01-06', '2017-01-05', '2017-01-04', '2017-01-03'],
          dtype='object', name='date', length=530), Index(['open', 'high', 'close', 'low', 'volume', 'price_change', 'p_change',
           'ma5', 'ma10', 'ma20', 'v_ma5', 'v_ma10', 'v_ma20'],
          dtype='object')]
    """
    
    # 将行字符类型索引转换成 datetime 类型
    df_sh.index = pd.to_datetime(df_sh.index)
    df_sh.sort_index(inplace=True)
    print(df_sh.axes)# 查看行和列的轴标签
    
    """
    [DatetimeIndex(['2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06',
                   '2017-01-09', '2017-01-10', '2017-01-11', '2017-01-12',
                   '2017-01-13', '2017-01-16',
                   ...
                   '2019-02-25', '2019-02-26', '2019-02-27', '2019-02-28',
                   '2019-03-01', '2019-03-04', '2019-03-05', '2019-03-06',
                   '2019-03-07', '2019-03-08'],
                  dtype='datetime64[ns]', name='date', length=530, freq=None), Index(['open', 'high', 'close', 'low', 'volume', 'price_change', 'p_change',
           'ma5', 'ma10', 'ma20', 'v_ma5', 'v_ma10', 'v_ma20'],
          dtype='object')]
    """
    
    # 以上可知get_hist_data()接口的优点是除返回基本的开盘价(open)、最高价(high)、收盘价(close)等数据外,还包括涨跌幅、均价等指标数据,但是它的缺点是不能获取股票自上市以来的所有日线数据。
    # 于是另一个get_k_data接口登场了,它获取数据的速度更快些,
    # 可以返回每一只股票从上市开始到当前交易日的所有日线数据
    '''
    
    
    '''
    # get_k_data api  讲解
    
    import datetime
    import pandas as pd
    import tushare as ts
    
    # get_hist_data 未返回2008年数据
    df_sh = ts.get_hist_data('sh', start='2008-01-01', end=datetime.datetime.now().strftime('%Y-%m-%d'))
    print(df_sh.head())
    """
                  open    high   close   ...       v_ma5   v_ma10   v_ma20
    date                                 ...                              
    2019-03-08  3038.3  3075.1  2969.9   ...     5.3e+06  4.9e+06  3.7e+06
    2019-03-07  3103.7  3129.9  3106.4   ...     4.9e+06  4.7e+06  3.4e+06
    2019-03-06  3060.4  3103.8  3102.1   ...     4.4e+06  4.4e+06  3.2e+06
    2019-03-05  3019.9  3055.0  3054.2   ...     4.2e+06  4.1e+06  3.0e+06
    2019-03-04  3015.9  3090.8  3027.6   ...     4.5e+06  3.9e+06  2.9e+06
    
    [5 rows x 13 columns]
    """
    print(df_sh.tail())
    """
                  open    high   close   ...       v_ma5   v_ma10   v_ma20
    date                                 ...                              
    2016-09-13  3025.0  3029.7  3023.5   ...     1.7e+06  1.7e+06  1.7e+06
    2016-09-12  3037.5  3040.9  3022.0   ...     1.7e+06  1.7e+06  1.7e+06
    2016-09-09  3095.4  3101.8  3078.8   ...     1.6e+06  1.6e+06  1.6e+06
    2016-09-08  3089.9  3096.8  3095.9   ...     1.7e+06  1.7e+06  1.7e+06
    2016-09-07  3091.3  3105.7  3091.9   ...     1.9e+06  1.9e+06  1.9e+06
    
    [5 rows x 13 columns]
    """
    
    # get_k_data 返回2008年数据
    df_sh = ts.get_k_data('sh', start='2008-01-01', end=datetime.datetime.now().strftime('%Y-%m-%d'))
    print(df_sh.head())
    """
             date    open   close  ...      low   volume  code
    0  2008-01-02  5265.0  5272.8  ...   5201.9  7.7e+07    sh
    1  2008-01-03  5269.8  5319.9  ...   5211.1  9.9e+07    sh
    2  2008-01-04  5328.4  5361.6  ...   5318.5  8.1e+07    sh
    3  2008-01-07  5357.4  5393.3  ...   5332.6  9.2e+07    sh
    4  2008-01-08  5414.6  5386.5  ...   5344.6  1.0e+08    sh
    
    [5 rows x 7 columns]
    """
    print(df_sh.tail())
    """
                date    open   close  ...      low   volume  code
    2715  2019-03-04  3015.9  3027.6  ...   3006.9  5.3e+08    sh
    2716  2019-03-05  3019.9  3054.2  ...   3009.4  4.2e+08    sh
    2717  2019-03-06  3060.4  3102.1  ...   3050.1  5.6e+08    sh
    2718  2019-03-07  3103.7  3106.4  ...   3075.0  5.8e+08    sh
    2719  2019-03-08  3038.3  2969.9  ...   2969.6  5.8e+08    sh
    
    [5 rows x 7 columns]
    """
    
    """
    差异化分析发现get_k_data()接口返回的交易数据,
    索引为序号而非交易日期,
    因此我们需要进行简单的处理使它与get_hist_data()接口返回的交易数据在格式上兼容,
    此处使用to_datetime()方法将date列交易日期替换为行索引,
    然后使用drop()方法将date列数据删除,
    以避免交易日期重复显示,如下所示:
    """
    
    # to_datetime 使得某列数据变成行索引
    df_sh.index = pd.to_datetime(df_sh.date)
    # 删除掉冗余的date列
    df_sh.drop(axis=1, columns='date', inplace=True)
    print(df_sh.head())
    
    """
                  open   close    high     low   volume code
    date                                                    
    2008-01-02  5265.0  5272.8  5295.0  5201.9  7.7e+07   sh
    2008-01-03  5269.8  5319.9  5321.5  5211.1  9.9e+07   sh
    2008-01-04  5328.4  5361.6  5372.5  5318.5  8.1e+07   sh
    2008-01-07  5357.4  5393.3  5403.4  5332.6  9.2e+07   sh
    2008-01-08  5414.6  5386.5  5480.1  5344.6  1.0e+08   sh
    """
    import matplotlib.pyplot as plt
    
    df_sh.close.plot(c='b')
    plt.legend(['close'], loc='best')
    plt.show()
    
    '''
    
    '''
    # tushare pro 获取数据
    # 注册账号要设置  token
    
    import pandas as pd
    import tushare as ts
    """
    关于pro版本,使用前需要登陆官网注册账号以获取token,
    注册地址:tushare.pro/register?re… 。
    不过部分接口设置了权限,需要达到一定的积分才能使用,
    比如获取指数每日行情index_daily()接口,用户需要累积200积分才有权限可以调取。
    
    daily()接口用于获取常用的股票行情数据,该接口无权限要求,
    下面以daily()接口为例展示下tushare pro获取数据的方法,如下所示:
    """
    
    #设置token
    token='your token'
    pro = ts.pro_api(token)#初始化pro接口
    #获取平安银行日行情数据
    pa=pro.daily(ts_code='000001.SZ', start_date='20180101',
                   end_date='20190101')
    
    print(pa.head())
    """
         ts_code trade_date  open    ...     pct_chg       vol    amount
    0  000001.SZ   20181228   9.3    ...         1.1  576604.0  541571.0
    1  000001.SZ   20181227   9.4    ...        -0.2  624593.3  586343.8
    2  000001.SZ   20181226   9.3    ...        -0.4  421140.6  393215.1
    3  000001.SZ   20181225   9.3    ...        -0.8  586615.4  545235.6
    4  000001.SZ   20181224   9.4    ...        -0.3  509117.7  477186.9
    """
    
    """"
    对比可知,daily()接口的主要输入参数与旧版get_k_data()和get_hist_data()接口大体相同,
    包括股票代码、开始日期、结束日期。daily()接口返回的数据格式与get_k_data()接口大体相同,
    我们可以使用上文处理get_k_data()接口的方法来调整daily()接口返回的数据格式。
    
    对于将序号形式的索引转换为交易日期形式的索引,
    此处介绍另一种方法。DatetimeIndex()也可以将字符类型转化成datetime64类型,
    等同于to_datetime()的效果。set_index()将指定的列作为索引,
    并且可以配置drop参数可删除该列,以避免重复。如下所示:
    """"
    
    pa.trade_date = pd.DatetimeIndex(pa.trade_date)
    pa.set_index("trade_date", drop=True, inplace=True)
    print(pa.axes)
    """
    [DatetimeIndex(['2018-12-28', '2018-12-27', '2018-12-26', '2018-12-25',
                   '2018-12-24', '2018-12-21', '2018-12-20', '2018-12-19',
                   '2018-12-18', '2018-12-17',
                   ...
                   '2018-01-15', '2018-01-12', '2018-01-11', '2018-01-10',
                   '2018-01-09', '2018-01-08', '2018-01-05', '2018-01-04',
                   '2018-01-03', '2018-01-02'],
                  dtype='datetime64[ns]', name='trade_date', length=243, freq=None), Index(['ts_code', 'open', 'high', 'low', 'close', 'pre_close', 'change',
           'pct_chg', 'vol', 'amount'],
          dtype='object')]
    """
    print(pa.head())
    """
                  ts_code  open  high    ...     pct_chg       vol    amount
    trade_date                           ...                                
    2018-12-28  000001.SZ   9.3   9.5    ...         1.1  576604.0  541571.0
    2018-12-27  000001.SZ   9.4   9.5    ...        -0.2  624593.3  586343.8
    2018-12-26  000001.SZ   9.3   9.4    ...        -0.4  421140.6  393215.1
    2018-12-25  000001.SZ   9.3   9.4    ...        -0.8  586615.4  545235.6
    2018-12-24  000001.SZ   9.4   9.4    ...        -0.3  509117.7  477186.9
    
    [5 rows x 10 columns]
    """
    
    '''
    
    展开全文
  • 本文主要参考此篇博客,使用Python按坐标查找Flickr照片数据,感谢原博主。 1.申请Flickr的开发密钥,注册登陆Flickr(个人利用QQ邮箱进行了注册登陆)。注册登陆(注意登陆此网站,需要科学上网。) 2.阅读开发者...

    本文主要参考此篇博客,使用Python按坐标查找Flickr照片数据,感谢原博主。
    1.申请Flickr的开发密钥,注册登陆Flickr(个人利用QQ邮箱进行了注册登陆)。注册登陆(注意登陆此网站,需要科学上网。)
    2.阅读开发者指南,获取API key。
    步骤如下:
    (1)
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    3.完整代码,注释解释的已经较详尽。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    import pandas as pd
    import requests
    import json
    import time
    import random
    import pymysql
    import xlrd
    import xlwt
    #主要的url
    api='https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=你的key&text=&min_taken_date=起始时间(格式如:2018-06-30)&max_taken_date=起始时间(格式如:2018-06-30)1&woe_id=所要查询地区的woe_id&extras=date_taken,tags,title,description,geo&per_page=500&format=json&sort=date-taken-asc'
    r= requests.get(api)
    a = json.loads(r.text[14:-1])
    
    for i in range(a["photos"]["pages"]):#进行翻页,循环获得每页的url
        s=requests.get(api+"&page="+str(i))
        b=json.loads(s.text[14:-1])#去掉外层的jsonFlickrApi()这几个字符串后解析成json的格式
        id=[]#定义获取内容的相关数组
        owner=[]
        secret=[]
        server=[]
        farm=[]
        datetaken=[]
        latitude=[]
        longitude=[]
        accuracy=[]
        place_id=[]
        woeid=[]
        for i in range(len(b["photos"]["photo"])):#循环获取每页每个照片数据,其中b["photos"]["photo"]为列表,则我们只需按
            c = b["photos"]["photo"]              #序号获取每个照片数据
            id.append(c[i]["id"])#获取到的每个照片数据我为字典类型,然后按需要取得自己想要的内容。
            owner.append(c[i]["owner"])
            secret.append(c[i]["secret"])
            server.append(c[i]["server"])
            farm.append(c[i]["farm"])
            datetaken.append(c[i]["datetaken"])
            latitude.append(c[i]["latitude"])
            longitude.append(c[i]["longitude"])
            accuracy.append(c[i]["accuracy"])
            place_id.append(c[i]["place_id"])
            woeid.append(c[i]["woeid"])
            print(i, c[i]["id"])#每获取一张照片数据,打印其
            time.sleep(random.randint(5, 10))#随机休息5-10秒,防止服务器拒绝访问。
    f = xlwt.Workbook() #创建工作簿
    sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
    j=0
    for id1,owner1,secret1,server1,farm1,datetaken1,latitude1,longitude1,accuracy1,place_id1,woeid1\
         in zip(id,owner,secret,server,farm,datetaken,latitude,longitude,accuracy,place_id,woeid):
        print(id1,owner1,secret1,server1,farm1,datetaken1,latitude1,longitude1,accuracy1,place_id1,woeid1)
        sheet1.write(j,0,id1);sheet1.write(j,1,owner1);sheet1.write(j,2,secret1);sheet1.write(j,3,server1);sheet1.write(j,4,farm1);sheet1.write(j,5,datetaken1);sheet1.write(j,6,latitude1);sheet1.write(j,7,longitude1);\
        sheet1.write(j,8,accuracy1);sheet1.write(j,9,place_id);sheet1.write(j,10,woeid);
        j=j+1
    f.save(r'路径\flackr_1.xls' )#保存文件
    
    
    不知之处,请多见谅。欢迎大家一起交流学习。
    
    
    
    
    
    展开全文
  • Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资。在Tushare 旧版 运行了3年后,Tushare Pro终于要跟大家见面了。Pro版数据更稳定质量更好了,但Pro依然是个开放...

    01 Tushare简介

    Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资。在Tushare 旧版 运行了3年后,Tushare Pro终于要跟大家见面了。Pro版数据更稳定质量更好了,但Pro依然是个开放的,免费的平台,不带任何商业性质和目的。Tushare运行三年多以来,数据从广度和深度都得到了提升,Pro版正是在此基础上做了更大的改进。数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。

    新版本(Tushare Pro)需要注册获取token才能免费使用,注册网址: Tushare注册。安装(Win+R进入cmd模式):pip install tushare,或升级:pip install tushare --upgrade。下面以股票行情数据为例,展示下tushare如何获取数据。

    02 获取token

    如何获取TOKEN凭证
    1、登录成功后,点击右上角->个人主页
    在这里插入图片描述
    2、 在“用户中心”中点击“接口TOKEN”
    在这里插入图片描述
    3、 可以点击右侧复制按钮复制token

    在这里插入图片描述
    4、或者点击右侧睁开眼睛来获取token明文,复制并保存

    在这里插入图片描述
    注意:token是调取数据的唯一凭证,请妥善保管,如发现别人盗用,可在本页面点击“刷新”操作,之前的token将失效。

    03 获取数据并进行可视化及保存数据操作

    1. 导入相关库

    # 导入相关库
    import tushare as ts
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    # 可以在画图时正常显示出现的中文和负号
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False
    

    2. 获取个股行情数据

    在这里插入图片描述
    在这里插入图片描述
    上面两个图都是获取各类型数据的接口及参数,如果有些数据你获取不了,说明你积分不够,这是你就需要增加你的积分,具体如何看社区网站有详细的流程。

    # 设置token
    token = '你刚才复制的token'
    pro = ts.pro_api(token)
    # 获取当前上市的股票代码、简称、注册地、行业、上市时间等数据
    data = pro.stock_basic(exchange='', list_status='L', fields='ts_code, symbol, name, area, industry, list_date')
    # 查看前五行数据
    print(data.head(5))
    
    # 获取万科日行情数据并查看前五条数据信息
    wk = pro.daily(ts_code='000002.SZ', start_date='20200101',
                   end_date='20200416')
    print(wk.head())
    

    3. 获取指数基金数据并进行可视化

    在这里插入图片描述

    # 指数数据:pro.index_daily()
    def get_index_data(indexs):
        '''indexs是字典格式'''
        index_data = {}
        for name, code in indexs.items():
            df = pro.index_daily(ts_code=code)
            df.index = pd.to_datetime(df.trade_date)
            index_data[name] = df.sort_index()
        return index_data
    
    # 获取常见股票指数行情
    indexs = {'上证综指': '000001.SH', '深证成指': '399001.SZ',
              '沪深300': '000300.SH', '创业板指': '399006.SZ',
              '上证50': '000016.SH', '中证500': '000905.SH',
              '中小板指': '399005.SZ', '上证180': '000010.SH'}
    index_data = get_index_data(indexs)
    print(index_data['上证综指'].head())
    
    # 对股价走势进行可视化分析
    subjects = list(index_data.keys())
    # 每个子图的title
    plot_pos = [421, 422, 423, 424, 425, 426, 427, 428]  # 每个子图的位置
    new_colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728',
                  '#9467bd', '#8c564b', '#e377c2', '#7f7f7f']
    
    fig = plt.figure(figsize=(25, 25))
    fig.suptitle('A股股指走势', fontsize=18)
    for pos in np.arange(len(plot_pos)):
        ax = fig.add_subplot(plot_pos[pos])
        y_data = index_data[subjects[pos]]['close']
        b = ax.plot(y_data, color=new_colors[pos])
        ax.set_title(subjects[pos])
        # 将右上边的两条边颜色设置为空,相当于抹掉这两条边
        ax = plt.gca()
        ax.spines['right'].set_color('none')
        ax.spines['top'].set_color('none')
    plt.savefig('A股重要指数基金.png')
    plt.show()
    

    可视化图如下:
    在这里插入图片描述

    4. 获取多只股票信息并保存到CSV文件中

    # 定义获取多只股票函数:
    def get_stocks_data(stocklist, start, end):
        all_data = {}
        for code in stocklist:
            all_data[code] = pro.daily(ts_code=code, start_date=start, end_date=end)
        return all_data
    
    data = pro.stock_basic(exchange='', list_status='L', fields='ts_code')
    stocklist = list(data['ts_code'][:20]) # 取前20只股票
    print(stocklist)
    start = '20200101' # 开始时间
    end = '20200401' # 截至时间
    all_data = get_stocks_data(stocklist, start, end)
    print(all_data)
    print(all_data['000002.SZ'].tail())
    
    # 保存本地
    def save_data(all_data):
        for code, data in all_data.items():
            data.to_csv('C:/Users/86188/Desktop/研究生学习/股票数据/'+code+'.csv', header=True, index=False)
    # 将数据保存到本地
    save_data(all_data)
    

    查看文件结果如下:
    在这里插入图片描述

    04 写在最后

    还有很多数据的获取及其参数解释都在Tushare社区网站,你注册后就可以看到。谢谢你的观看,喜欢就给个赞吧!

    展开全文
  • 今天给大家介绍下,来自图新地球用户王泽的原创教程——利用Python获取数据,并在地图上批量标注的方法! 以成都图书馆为例,利用Python获取经纬度数据 1.利用Python抓取高德api获取图书馆位置经纬度 2.LSV...

    我们想要在地图上批量标注某一类的大量点位,该怎么操作呢?没有它的坐标数据,就没有办法批量标注。今天给大家介绍下,来自图新地球用户王泽的原创教程——利用Python获取数据,并在地图上批量标注的方法!

    以成都图书馆为例,利用Python获取经纬度数据
    1.利用Python抓取高德api获取图书馆位置经纬度

    2.LSV(图新地球)导出kml标注文件

    处理经纬度、导出kml标注文件:
    将经纬度文件导出kml文件,待标注位置用
    1.LSV顶部菜单点击“工具”,选择“Excel转KML”
    2.在弹出的对话框中点击“打开XLS”,导入Excel文件后,显示如图
    3.红色框为需要选择的内容,其中经纬度开始行,如果第一行是标题则选择第二行
    4.点击“生成点”,并预览生成结果

    3.成都地图数据下载:
    1.在LSV搜索框中,选择“地名搜索”,搜索成都市
    2.在线地图中选择适合的影像或地图
    3.在弹出的下载区设置中,点击“选择面”,并选中成都市区域
    4.输出格式选择”MBT离线地图包“下载
    5.下载级别按需求选择,建议14级以下,点击开始下载

    4.Global mapper标注样式设置
    (1)在Global mapper中导入文件,右键单击成都市图书馆文件,选择“options”,进行标注点样式设置。

    (2)选择样式,点击“Feature Types”,点击下拉框,在可选样式中进行选择。

    5.Global mapper文件导出
    在Global mapper中选择PDF或图片格式,导出文件。

    输出:成都图书馆地理位置可视化  专题图。

    所用到的软件:

    图新地球官方下载

    GlobalMapper 请自行搜索下载

    展开全文
  • 利用python获取es索引中的所有数据

    千次阅读 2019-10-22 10:16:05
    利用Python的elasticsearch模块获取指定索引下的所有数据。 代码如下: from elasticsearch import Elasticsearch es = Elasticsearch(['http://192.168.193.61:9200'],sniff_on_start=True,sniff_on_...
  • 利用python获取pdf文件元数据

    千次阅读 2018-12-16 16:28:15
    开发语言:python3 开发工具:pycharm   python第三方模块:PyPDF2 python内建模块:sys   第一步:pycharm安装第三方模块“PyPDF2”   第二步:导入模块“PyPDF2”,“sys”   第三步:...
  • 利用python获取微信企业号打卡数据,并生成windows计划任务安装python安装第三方库写主程序设置Windows计划任务 由于公司的系统用的是Java版本,开通了企业号打卡之后又没有预算让供应商做数据对接,所以只能自己...
  • def obtain_info_of_data(symbol): ...code=' + str(symbol)) # return format: var apidata={...}; # filter the tag content = str(response.text.encode('utf8')[13:-2]) content_split = content.split(',') ...
  • #!/usr/bin/python3 # -*- coding: utf-8 -*- # author: ...#中国股票数据 import urllib.request import time, datetime import re, json class STOCK(): _prefix_url = "https://hq...
  • 根据相关政策规定,国内比特币交易将于2017年9月底关闭,但这几...API 中获取数据并保存成 CSV 文件供日后利用。 本文主要内容如下: 比特币、莱特币历史行情数据 利用 Python 获取 okcoin.cn 比特币历史数据 利用 Py
  • 利用Python预测股票价格

    千次阅读 多人点赞 2020-07-16 16:24:12
    前言 ...我们介绍一下获得股票数据的方法,并基于此对数据进行预处理,接着使用数据分析方法,建立基础特征,进一步构建预测模型,且基于新数据验证模型效果。拟使用VAR及LSTM两种算法建立预测模型。
  • Python利用Selenium获取动态页面数据

    万次阅读 2017-05-20 11:24:32
    利用python爬取网站数据非常便捷,效率非常高,但是常用的一般都是使用BeautifSoup、requests搭配组合抓取静态页面,即网页上显示的数据都可以在html源码中找到,而不是网站通过js或者ajax异步加载的,这种类型的...
  • 2.上一篇:利用Python进行股票交易分析(一):量化交易策略——买点与卖点的量化 目标 1.下载上证、深证所有股票历史行情数据到本地数据库 2.每日更新股票行情数据到本地数据库 过程 ...
  • 学习用Python分析股票数据(入门)

    万次阅读 多人点赞 2018-04-10 15:52:38
    学习使用python来分析股票,主要事涉及数据获取数据可视化,以及探究数据中各项指标的含义及和关系。 使用工具 pandas、numpy、datatime pandas-datareader 在线获取股票数据 matplotlib 数据可视化 ...
  • pandas_datareader.data 这个库提供了网络对股票数据的查询,使用方式为web.DataReader(股票代码,数据来源,开始时间,结束时间) 该函数返回的是一个dataframe类型的数据,可使用相关库对其进行基础的数据分析 #...
  • 使用python获取疫情数据

    千次阅读 2020-06-21 16:03:03
    文章目录导包请求url采集数据遍历并写入数据运行程序查看数据全国各省主要城市疫情数据全国每日疫情数据全国各省疫情数据 导包 import requests import json import time import pandas as pd 请求url url = '...
  • 通过下述策略对利用python进行股票技术分析,可以举一反三,并且能够实现复杂的技术分析策略,同时可以同python的宏观数据、公司基本面数据、舆情等分析结合起来。 策略原理:在股票下跌过程中,当出现上涨锤子线...
  • [遥感]利用python爬虫获取美国冰雪数据中心的数据

    千次阅读 热门讨论 2018-03-08 20:02:13
     由于最近学习方面需要用到NSIDC(美国冰雪数据中心)的数据进行计算,但是手工下载又特别耗费时间,需要一个一个去点击,所以我尝试着去写一个小爬虫获取所需数据。  对所有需要在NSIDC下数据的科研工作者可能会...
  • python3使用pandas获取股票数据

    千次阅读 2018-06-27 14:47:11
    进入命令行窗口,在python安装目录下,进入Scripts,输入命令pip install pandas其他第三方库的安装类似此方法
  • 前言 随着2012年开始直播行业的兴起,吃外卖看直播成了很多...(1)利用爬虫获取数据 (2)从各种维度对直播数据进行数据分析 (3)分析结果可视化 一、利用爬虫获取数据 Markdown和扩展Markdown简洁的语法...
  • python获取接口数据,写入文件

    千次阅读 2017-10-16 14:28:44
    python获取接口数据,写入文件以下是代码:import types import urllib2 import jsonduan =”————————–” #在控制台断行区别的利用urllib2获取网络数据def registerUrl(): try: url =”...
  • 利用python下载ECMWF数据

    千次阅读 2018-05-01 11:51:27
    2.下载 ECMWF web-API client version in python,下载网址为https://software.ecmwf.int/wiki/display/WEBAPI/Web-API+Downloads,然后pip install 下载的包即可3.登录账号获取下载数据的key,网址...
  • 利用Python爬虫获取IP2Location定位数据

    千次阅读 2016-11-13 11:41:07
    IP2Location是一个很好的IP定位信息查询网站,本文利用python爬虫获取其网页版IP信息
  • 作为一个学习用Python进行数据分析的新手来说,通过本文来记录分享一些我在用Python中的pandas、numpy来分析Excel表中数据数据清洗和整理的工作,目的是熟悉numpy以及pandas基础操作,所有操作利用Excel均可以方便...
  • R语言获取历史股票数据

    千次阅读 2016-03-20 19:00:53
    本文转载我自己写的文章,我个人网站DataAnswer:http://www.dataanswer.top(大数据博客和大数据问答的网站)上的文章。主要利用python获取股票数据,利用R来作图分析。
  • Python3对股票数据进行分析

    万次阅读 多人点赞 2019-04-19 10:40:17
    二、股票数据 三、股票数据分析 1、导入股票时间序列数据 2、绘制股票成交量的时间序列图 3、绘制股票收盘价和成交量的时间序列图 3、绘制K线图(蜡烛图) (1)K线图理论 (2)K线图绘制 4、股票指标相关性...
  • 最近在利用爬虫获取智联招聘的职位信息,尝试使用C#,发现很难进行。逛遍论坛就几个老例子,十分被动。于是就使用python代替进行数据获取。Python操作Access数据库是在实践...1、 Python获取网页代码 2、 Python使用x
  • 利用Python读取外部数据文件

    千次阅读 2019-04-07 16:46:24
    利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析、数据可视化、数据挖掘等。 在本期的Python学习中,我们将针对Python如何获取外部数据做一个详细的介绍,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,278
精华内容 74,511
关键字:

利用python获取股票数据

python 订阅