从Binance API提取数据并将其转换为PANDAS Datafram

2024-04-25 17:07:28 发布

您现在位置:Python中文网/ 问答频道 /正文

来自Binance的数据以python列表的形式提供,不按日期索引

from binance.client import Client
import datetime
import pandas as pd
import matplotlib
matplotlib.use('TkAgg')


client = Client("API_KEY", "API_PRIVATE_KEY")

此函数获取数据并创建2pd.数据帧在

^{pr2}$

此df变量创建按日期索引的数据帧

    df = pd.DataFrame(index=dates)

此df_temp变量将二进制数据转换为pd.数据帧在

    df_temp = pd.DataFrame(klines)

    del df_temp[0]
    del df_temp[1]
    del df_temp[2]
    del df_temp[3]
    del df_temp[5]
    del df_temp[6]
    del df_temp[7]
    del df_temp[8]
    del df_temp[9]
    del df_temp[10]
    del df_temp[11]

    df_temp = df_temp.rename(columns={4: ticker})

这里我尝试连接两个数据帧

    df = df.join(df_temp)

    return df

此函数用于执行脚本

def execute():

    ticker = "BNTETH"

    d = ("1 Dec, 2013", str((datetime.date.today())).split(' ')[0])

    df = get_data(ticker, d[0], d[1])

    print(df)


if __name__ == "__main__":
    execute()

它连接两个数据帧,但不幸的是我得到了:

           BNTETH
2013-12-01    NaN
2013-12-02    NaN
2013-12-03    NaN

连接前的数据帧:

测向尾翼()

Empty DataFrame
Columns: []
Index: [2018-01-24 00:00:00, 2018-01-25 00:00:00, 2018-01-26 00:00:00, 
2018-01-27 00:00:00, 2018-01-28 00:00:00]

df_温度

         BNTETH
0    0.01003900
1    0.00924800
2    0.00946400
3    0.00945700
4    0.00945000

Tags: 数据importclientapidataframedfdatetimematplotlib
2条回答

这是我的2个孩子: 首先请求数据集并对其进行数组:

klines30 = np.array(client.get_historical_klines(symbol, '30m', deltaTime, endTime))

然后,此函数将创建一个具有正确时间的数据帧:

^{pr2}$

如果保证df和{}的长度相同,请尝试使用此方法而不是{}:

df['BNTETH'] = df_temp.values

相关问题 更多 >