dengdaiyemanren / python

python知识
8 stars 1 forks source link

pandas使用问题 #5

Open dengdaiyemanren opened 8 years ago

dengdaiyemanren commented 8 years ago
http://stackoverflow.com/questions/34383000/pandas-to-sql-all-columns-as-nvarchar

dtype = {'date':sqlalchemy.DateTime(),'code':sqlalchemy.Integer} df.to_sql('hist_stock_data',engine,index=True,if_exists="append",dtype= dtype)

dengdaiyemanren commented 8 years ago

cursors.py:206: Warning: Incorrect string value

http://stackoverflow.com/questions/2108824/mysql-incorrect-string-value-error-when-save-unicode-string-in-django

dengdaiyemanren commented 8 years ago

乱码问题解决 http://fc-lamp.blog.163.com/blog/static/174566687201210285137981/

dengdaiyemanren commented 8 years ago

地址: http://pandas.pydata.org/pandas-docs/version/0.18.1/10min.html

dengdaiyemanren commented 8 years ago

pandas 与 DataFrame http://www.aboutyun.com/thread-12358-1-1.html

dengdaiyemanren commented 8 years ago
##
ts11 = pd.Series([10.1,10.5,10.2,10.10,12,10], index=['2010-01-01','2010-01-02','2010-01-03','2010-01-04','2010-01-05','2010-01-06'])
ts11 = ts11.cumsum()
ts11.plot()

## a dict 
ts12 = {'a' : 0., 'b' : 1., 'c' : 2.}
ts13 = pd.Series(ts12)
ts13.plot()

##From dict of Series or dicts

d = {'code1' : pd.Series([2., 3., 4.], index=['a', 'b', 'c']),
    'code2' :  pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)  
df.plot()
#print df 

## ndarrays / lists
d2 = {'one' : [1., 2., 3., 4.], 'two' : [4., 3., 2., 1.]}
df2 = pd.DataFrame(d2) 
df2 = pd.DataFrame(d2, index=['a', 'b', 'c', 'd'])

#df2.plot()

## From a list of dicts
data3 = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
df3 = pd.DataFrame(data3) 
#df3.plot()

## finish
ts11 = pd.Series([10.1,10.5,10.2,10.10,12,10], index=['2010-01-01','2010-01-02','2010-01-03','2010-01-04','2010-01-05','2010-01-06'])

d = {'000033' : pd.Series([10.1,10.5,10.2,10.10,12,10], index=['2010-01-01','2010-01-02','2010-01-03','2010-01-04','2010-01-05','2010-01-06']),
    '000034' :  pd.Series([4,5,5.2,5.4,6,5.5], index=['2010-01-01','2010-01-02','2010-01-03','2010-01-04','2010-01-05','2010-01-06'])}
df = pd.DataFrame(d)  

#ts11 = ts11.cumsum()
#ts11.plot()
dengdaiyemanren commented 7 years ago

DataFrame

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.truncate.html

DataFrame可视化

http://pandas.pydata.org/pandas-docs/version/0.13.1/visualization.html

dataframe 合并contact

http://pandas.pydata.org/pandas-docs/stable/merging.html

同一个坐标展示2个dataframe

误区:前面想着把datframe 通过同名覆盖,然后加个z坐标区分,这个难度很高,很难实现 方法:把dataframe的列生成新的列,在一个dataframe里展示是可以的。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
   df = pd.DataFrame(np.random.randn(10,4),
 index=pd.date_range('20100101',periods=10), columns=list('ABCD'))

    df = dfcontact
    df = df.cumsum()
    plt.figure()
    df.plot()
    plt.legend(loc='best')
from chartpy import Chart, Style, Canvas
import tushare.stock.trading as fd

    df1 = fd.get_hist_data("300431",'2016-03-12')
    df1['code'] ="300431"
    df1['300431'] = df1['close']
    df2 = fd.get_hist_data("000786",'2016-03-12')
    df2['000786'] = df2['close']

    framses =[df1.filter(items=['300431']),df2.filter(items=['000786'])]
    #dfcontact = pd.concat(framses)
    dfcontact = df1.filter(items=['300431']).append(df2.filter(items=['000786']))

    chart_plotly1 = Chart(df=dfcontact, chart_type='line', engine='plotly',
                         style=Style(title="股价对比图", source="Quandl/Fred", scale_factor=-2, width=500, height=300, silent_display=True))

    text = "A demo of chartpy canvas!!"

    # using plain template
    canvas = Canvas([[chart_plotly1]])

    canvas.generate_canvas(silent_display=False, canvas_plotter='plain')
dengdaiyemanren commented 7 years ago

apply

def sumHostAndGust(row,col1,col2):
        return row[col1] + row[col2]
    dff = dfn.apply(sumHostAndGust,axis=1,col1='hostScore', col2='awayScore')
dengdaiyemanren commented 7 years ago

过滤

df = self.df.loc[self.df.loc[:,'status'] == 'COMPLETE']
dengdaiyemanren commented 4 years ago

mplfinance 绘制K线图

参考: https://blog.csdn.net/qq_41437512/article/details/105319421 https://blog.csdn.net/wuwei_201/article/details/105815728

往图中添加图形

make_addplot 函数 https://blog.csdn.net/wuwei_201/article/details/105783640

dengdaiyemanren commented 4 years ago

MACD 线的实现

https://towardsdatascience.com/implementing-macd-in-python-cc9b2280126a

解读MACD

https://www.cmoney.tw/learn/course/technicals/topic/750

dengdaiyemanren commented 4 years ago

指标实现库的使用(参考)

https://markjong001.pixnet.net/blog/post/249471859-python-%E9%87%8F%E5%8C%96%E5%88%86%E6%9E%90%E7%9A%84%E5%A5%BD%E5%88%A9%E5%99%A8-%22ta-lib%22

dengdaiyemanren commented 4 years ago

RSI指标计算

参考 https://stackoverflow.com/questions/20526414/relative-strength-index-in-python-pandas

    delta = data['Close'].diff()
        dUp, dDown = delta.copy(), delta.copy()

        dUp[dUp < 0] = 0
        dDown[dDown > 0] = 0

        RolUp = dUp.rolling(n).mean()
        #RolUp = pd.rolling_mean(dUp, n)

       # RolDown = pd.rolling_mean(dDown, n).abs()
        RolDown = dDown.rolling(n).mean().abs()

        RS = RolUp / RolDown

        RSI=(1 - 1/(RS+1)) * 100

        print(RSI)

        data['rsi'] = RSI

dengdaiyemanren commented 4 years ago

KDJ 指标计算

参考:https://www.cnblogs.com/eczhou/p/10647292.html

        Ln = data['Low'].rolling(n).min()
        Ln.fillna(value = data['Low'].expanding().min(), inplace = True)

        Hn = data['High'].rolling(n).max()
        Hn.fillna(value = data['High'].expanding().max(), inplace = True)

        Rsv = (data['Close']-Ln)/(Hn-Ln) * 100

        Kn = Rsv.ewm(com=a).mean();
        Dn = Kn.ewm(com=a).mean()
        Jn = 3*Kn -2*Dn 

        data['Kn'] = Kn
        data['Dn'] = Dn

dengdaiyemanren commented 4 years ago

选股因子数据挖据

tensorflow安装

https://www.tensorflow.org/install?hl=zh-tw

遇到的问题: https://githu.com/tensorflow/tensorflow/issues/22512

https://tf.wiki/zh_hans/basic/installation.html#id1

k均值聚类算法原理及应用

参考文档: https://www.cnblogs.com/DjangoBlog/p/10858223.html 参考代码: https://githu.com/tensorflow/tensorflow/issues/33818

Series To array

https://www.geeksforgeeks.org/python-pandas-series-to_numpy/