聚沙成塔--数据分析(四)(铁柱与小花的初见)

版权声明:本文为作者原创文章,可以随意转载,但必须在明确位置标明出处!!!

最近一直在想怎么去写好pandas,送给2018的你我这篇文章也说了今年我个人的目标是要去学习投资,理财和股票。所以我决定从这个方向入手,毕竟跟钱相关的学习更有动力。

在正式开始之前需要介绍一个开源的财经数据接口包TuShare,它主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。当然你们可以到官网上去了解更多的详情http://tushare.org/index.html

话说铁柱和小花都在证券公司工作,公司那是狼多肉少啊,小花又正值芳华,年方二八,青春靓丽、肤白貌美、凹凸有致。是公司里公认的女神啊,只要一有空闲时间公司里的狼总是围绕在小花身边转啊转,都想把女神变成自己的私有财产啊。当然铁柱也不例外,但铁柱有自知之明啊,他知道知己是个“屌丝”,这种想法想法只在夜深人静的时候在心里“意淫,意淫”。

一天领导给铁柱安排了很多工作,铁柱没办发只能加班了啊。哼哧,哼哧,晚上10点铁柱终于把工作搞定了,在心里骂了句“万恶的资本家”,准备收拾东西走人。刚把公司灯关了就听到一声娇滴滴的声音“还有人呐”。哎呀!妈啊,铁柱一个激灵。这不是女神小花的声音是谁的声音。尼玛,铁柱的小心脏扑扑乱跳啊,现在公司只有我和小花了啊,机会难得啊。要不要上去打个招呼、要不要上去问问女神有没有什么需要帮助的,要不要送回家、要不要去吃个夜宵,哎呀,妈啊,铁柱的脑子里那是天人交战。这时又一个声音传来“给我开一下灯,谢谢”,铁柱把灯打开,走向了小花的工位,告诉自己不能怂。小花这么完了咋还不回去啊。小花:“领导让我统计一下茅台去年到现在的数据,我刚来不知道咋统计啊, 咋办啊,领导让我今天一定要弄完,完了,完了,这回我死定了”。铁柱一听,尼玛!这不正是我这个屌丝程序员擅长的吗。铁柱虎躯一震说:“小花这个我会一点,你看是不是下面这样的”,铁柱拿出自己的笔记本“啪,啪,啪”敲出下面的下面的代码执行,这一刻的铁柱查克拉简直是爆满状态啊。

import pandas as pd
import numpy as np
import tushare as tu


df = tu.get_k_data('600519', start='2017-01-01')

print(df)

OUT:
           date     open    close     high      low    volume    code
0    2017-01-03  329.299  329.575  331.979  327.851   20763.0  600519
1    2017-01-04  329.634  346.667  346.923  329.615   65257.0  600519
2    2017-01-05  344.785  341.574  346.213  340.293   41704.0  600519
3    2017-01-06  341.475  345.534  354.419  340.943   68095.0  600519
4    2017-01-09  342.618  343.317  347.622  341.377   35405.0  600519
5    2017-01-10  343.258  343.800  346.755  341.436   31727.0  600519
6    2017-01-11  342.815  340.303  342.815  338.382   23598.0  600519
7    2017-01-12  341.386  341.879  342.224  339.377   17779.0  600519
8    2017-01-13  341.810  339.731  342.214  338.756   18282.0  600519
9    2017-01-16  339.003  336.382  339.663  333.752   36855.0  600519
10   2017-01-17  337.495  343.928  346.263  336.904   35188.0  600519
11   2017-01-18  343.682  349.789  351.454  342.037   46005.0  600519
12   2017-01-19  349.711  349.435  353.139  346.460   28523.0  600519
13   2017-01-20  349.612  349.701  352.075  347.770   21344.0  600519
14   2017-01-23  351.563  345.987  354.439  344.253   32581.0  600519
15   2017-01-24  346.036  345.090  347.543  341.583   26914.0  600519
16   2017-01-25  344.765  342.450  344.765  341.042   22990.0  600519
17   2017-01-26  342.953  339.288  343.603  336.215   37826.0  600519
18   2017-02-03  340.845  341.682  343.977  339.860   20936.0  600519
19   2017-02-06  343.298  341.682  343.692  339.820   15680.0  600519
20   2017-02-07  341.672  338.461  342.224  338.027   20519.0  600519
..          ...      ...      ...      ...      ...       ...     ...

小花看到上面的结果高兴极了,告诉铁柱:“铁柱,这就是我要的结果,当有些地方不对,想0,1,2,3...这些数字能不能把它换成date这一列的日期格式”。铁柱听完一想这还不简单吗,不就是重新设置一下索引吗,so easy。

import pandas as pd
import numpy as np
import tushare as tu


df = tu.get_k_data('600519', start='2017-01-01')

df.set_index('date', inplace=True)
print(df)
OUT:
               open    close     high      low    volume    code
date                                                            
2017-01-03  329.299  329.575  331.979  327.851   20763.0  600519
2017-01-04  329.634  346.667  346.923  329.615   65257.0  600519
2017-01-05  344.785  341.574  346.213  340.293   41704.0  600519
2017-01-06  341.475  345.534  354.419  340.943   68095.0  600519
2017-01-09  342.618  343.317  347.622  341.377   35405.0  600519
2017-01-10  343.258  343.800  346.755  341.436   31727.0  600519
2017-01-11  342.815  340.303  342.815  338.382   23598.0  600519
2017-01-12  341.386  341.879  342.224  339.377   17779.0  600519
2017-01-13  341.810  339.731  342.214  338.756   18282.0  600519
2017-01-16  339.003  336.382  339.663  333.752   36855.0  600519
2017-01-17  337.495  343.928  346.263  336.904   35188.0  600519
2017-01-18  343.682  349.789  351.454  342.037   46005.0  600519
2017-01-19  349.711  349.435  353.139  346.460   28523.0  600519
2017-01-20  349.612  349.701  352.075  347.770   21344.0  600519

小花看到上面的结果跟铁柱说:“把code这一列改成茅台汉字, high,low, volume列不要”,铁柱一听就知道这不就是删除列和替换列吗,于是又一阵鼓捣

import pandas as pd
import numpy as np
import tushare as tu


df = tu.get_k_data('600519', start='2017-01-01')

df.set_index('date', inplace=True)

df['code'] = '茅台'

df.drop(['high', 'low', 'volume'], axis=1, inplace=True)

print(df)
OUT:
               open    close code
date                             
2017-01-03  329.299  329.575   茅台
2017-01-04  329.634  346.667   茅台
2017-01-05  344.785  341.574   茅台
2017-01-06  341.475  345.534   茅台
2017-01-09  342.618  343.317   茅台
2017-01-10  343.258  343.800   茅台
2017-01-11  342.815  340.303   茅台
2017-01-12  341.386  341.879   茅台

铁柱能不能筛选出收盘价大于开盘价的记录啊,小花问道。铁柱一想这不就是逻就是一个比较操作吗。pandas里还有逻辑操作且(“&”),或(“|”),包含(“isin”),非(“~”)
按照小花提的要求铁柱又释放一下查克拉

import pandas as pd
import numpy as np
import tushare as tu


df = tu.get_k_data('600519', start='2017-01-01')

df.set_index('date', inplace=True)

df['code'] = '茅台'

df.drop(['high', 'low', 'volume'], axis=1, inplace=True)

df1 = df[df['close'] > df['open']]

print(df1)

小花看到结果很满意啊,距离老板要求的结果越来越近了,这时小花跟铁柱说:“铁柱,根据收盘价排一下序行不”。行啊,必须行啊,铁柱一听想都不带想得说道,自己现在是查卡拉爆满状态啊,遇神杀神,遇佛杀佛。

import pandas as pd
import numpy as np
import tushare as tu


df = tu.get_k_data('600519', start='2017-01-01')

df.set_index('date', inplace=True)

df['code'] = '茅台'

df.drop(['high', 'low', 'volume'], axis=1, inplace=True)

df1 = df[df['close'] > df['open']].copy()

df1.sort_values(by='close', inplace=True)

print(df1)

OUT:
               open    close code
date                             
2017-01-03  329.299  329.575   茅台
2017-02-08  338.638  339.081   茅台
2017-02-03  340.845  341.682   茅台
2017-01-12  341.386  341.879   茅台
2017-02-09  339.860  342.431   茅台
2017-01-09  342.618  343.317   茅台
2017-01-10  343.258  343.800   茅台
2017-01-17  337.495  343.928   茅台
2017-02-13  338.874  344.539   茅台
2017-02-14  344.332  344.992   茅台
2017-02-17  343.701  345.337   茅台
2017-01-06  341.475  345.534   茅台
2017-01-04  329.634  346.667   茅台
2017-01-20  349.612  349.701   茅台
2017-01-18  343.682  349.789   茅台
2017-03-03  349.711  351.228   茅台

铁柱就是这个结果了,我明天给领导看看。不过铁柱你能把结果写到Excel里吗,可以啊,必须的可以啊,谁叫你是女神呢,你什么要求我都答应,铁柱贱兮兮的回答到,强势调戏一波。

import pandas as pd
import numpy as np
import tushare as tu


df = tu.get_k_data('600519', start='2017-01-01')

df.set_index('date', inplace=True)

df['code'] = '茅台'

df.drop(['high', 'low', 'volume'], axis=1, inplace=True)

df1 = df[df['close'] > df['open']].copy()

df1.sort_values(by='close', inplace=True)

File = r'600519.xlsx'
writer = pd.ExcelWriter(File)
df1.to_excel(writer, 'Sheet1')
writer.save()

NICE,铁柱帅气的说了句洋文,小花怎么样,是你要的结果吧。小花看到Excel上的数据心里面压着的石头终于落地了,整个人也变得轻松了。真不知道怎么谢谢你铁柱,要不我请你吃夜宵吧。铁柱当然满心欢喜的答应了,看看时间已经夜里12点多了,这时间过得真TM快啊,爱因斯坦哪个老头果真没有骗我,时间是相对的。铁柱和小花吃完夜宵然后.........


欢迎关注我:「爱做饭的老谢」,老谢一直在努力...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容