Python 有没有一种方法可以将价格数据重新采样到OHLC,而不用将DateTime指数换成RangeIndex?
所以我有点困难 我想重新采样的时间和价格的股票数据到开放-高-低-收盘 为此,我首先使用Python 有没有一种方法可以将价格数据重新采样到OHLC,而不用将DateTime指数换成RangeIndex?,python,pandas,dataframe,datetime,matplotlib,Python,Pandas,Dataframe,Datetime,Matplotlib,所以我有点困难 我想重新采样的时间和价格的股票数据到开放-高-低-收盘 为此,我首先使用df.date=pd.To_datetime['date']然后使用df=df.set_index('date')['price'].resample('1H').ohlc() 然而,在这个过程中,我丢失了宝贵的df.date——它现在是df.index。而且它们不一样。用于df.date的其他指示器功能不再用于df.index 即使是提供给我的价格数据也没有将“日期”与其他列的名称放在同一级别上,这意味着它
df.date=pd.To_datetime['date']
然后使用df=df.set_index('date')['price'].resample('1H').ohlc()
然而,在这个过程中,我丢失了宝贵的df.date——它现在是df.index。而且它们不一样。用于df.date的其他指示器功能不再用于df.index
即使是提供给我的价格数据也没有将“日期”与其他列的名称放在同一级别上,这意味着它甚至不是该列的名称或其他内容:
open high low close
date
2021-01-28 01:00:00 30653.553694 30653.553694 30653.553694 30653.553694
2021-01-28 02:00:00 30994.198478 30994.198478 30994.198478 30994.198478
2021-01-28 03:00:00 31274.386041 31274.386041 31274.386041 31274.386041
2021-01-28 04:00:00 31441.260678 31441.260678 31441.260678 31441.260678
2021-01-28 05:00:00 31196.750744 31196.750744 31196.750744 31196.750744
... ... ... ... ...
2021-02-03 20:00:00 36708.821125 36708.821125 36708.821125 36708.821125
2021-02-03 21:00:00 37036.271097 37036.271097 37036.271097 37036.271097
2021-02-03 22:00:00 37266.377988 37266.377988 37266.377988 37266.377988
2021-02-03 23:00:00 37262.988292 37262.988292 37262.988292 37262.988292
2021-02-04 00:00:00 37725.264554 37808.578235 37725.264554 37808.578235
我包括我的密码,请帮我破译这个。基本上,我只需要保持df.dates为df.dates,但采用DateTime格式,而价格采用OHLC格式
import pandas as pd
import json
import requests
API_URL = 'https://api.coingecko.com/api/v3'
r = requests.get(API_URL + '/coins/bitcoin/market_chart?vs_currency=usd&days=7&interval=hourly')
d = r.json()
df = pd.DataFrame(d['prices'])
df.columns = ['date', 'price']
df['date'] = pd.to_datetime(df['date'], unit='ms')
df = df.set_index('date')['price'].resample('1H').ohlc()
# THIS DOES NOT WORK --> df.index = df.date
事实上,你可以使用
我以前提到过
# method2
df['hr'] = pd.to_datetime(df['date'].dt.strftime('%Y-%m-%d %H:00'))
dfn = df.join(df.groupby('hr')['price'].ohlc(), on='hr')
print(dfn)
您可以使用
df.reset_index()
将索引转换为一列。因此,我会ohlc=df.set_index('date')['price'])。重新采样('1H').ohlc()
,然后df=df.reset_index
但仍然会得到一个错误:AttributeError:'function'对象在我打印时没有属性'date'
(df.date
也许你应该提供一些你想要的输出。我希望数据框有5个值:打开、关闭、高、低和日期我找到了一个解决方案!!!它是ohlc.reset\u index('date')
!!!