Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有一种方法可以将价格数据重新采样到OHLC,而不用将DateTime指数换成RangeIndex?_Python_Pandas_Dataframe_Datetime_Matplotlib - Fatal编程技术网

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')
!!!