如何在数据库中同时使用PANDAS和MySql?

时间:2018-11-25 16:01:21

标签: python mysql pandas dataframe

我是一名新程序员,您可以尝试使用python和mysql,但是我遇到了问题,希望我可以在这里找到帮助。

我的代码:

        df = pd.DataFrame.from_dict(arr, orient='columns')
        df['EMA_Corta'] = df['AskTop'].ewm(span=EMA_Corta, adjust=False).mean()
        df['EMA_Larga'] = df['AskTop'].ewm(span=EMA_Larga, adjust=False).mean()
        df['Señal'] = np.where(df['EMA_Corta'] > df['EMA_Larga'], 1.0, 0.0) 
        df['positions'] = df['Señal'].diff().fillna(0)
        df['Señal_Trading'] = df['positions'].fillna(0)
        df['Precio_transaccion'] = np.where(df['Señal_Trading'] == 1, df['Price'], df['Price'])
        df['Posicion'] = np.where(df['Señal']==1, "BUY","SELL")
        df.to_sql(name='TradingSignals',con=engine,if_exists='append',index=False)
        print(df)
    if index == 1:
        data = GetObject(precioActual, bidTop, askTop)
        arr.append(data)
        df = pd.DataFrame.from_dict(arr, orient='columns')
        df['EMA_Corta'] = df['AskTop'].ewm(span=EMA_Corta, adjust=False).mean() 
        df['EMA_Larga'] = df['AskTop'].ewm(span=EMA_Larga, adjust=False).mean() 
        df['Señal'] = np.where(df['EMA_Corta'] > df['EMA_Larga'], 1.0, 0.0)   
        df['positions'] = df['Señal'].diff().fillna(0) 
        df['Señal_Trading'] = df['positions'].fillna(0)
        df['Precio_transaccion'] = np.where(df['Señal_Trading'] == 1, df['Price'], df['Price']) 
        df['Posicion'] = np.where(df['Señal']==1, "BUY","SELL") #VARCHAR
        df.to_sql(name='TradingSignals',con=engine,if_exists='append',index=False)
        print(df)

此代码对API进行调用,然后我获取一个价格,根据这个价格,我制定了一个非常简单的策略。我想将此策略保留在mysql数据库中作为数据框架。问题在于它为我节省了9万条记录,而我只想仅在更改价格时保存有限的记录,而不是我要求查询的所有电话是否存在价格变动。

0 个答案:

没有答案