Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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 使用DatetimeIndex将价格报价器加载到Pandas数据框中_Python_Pandas_Numpy - Fatal编程技术网

Python 使用DatetimeIndex将价格报价器加载到Pandas数据框中

Python 使用DatetimeIndex将价格报价器加载到Pandas数据框中,python,pandas,numpy,Python,Pandas,Numpy,我想知道是否有一种简单的方法可以将json数据加载到带有DateTimeIndex的Pandas数据帧中 data={"date":1405699200,"high":0.0045388,"low":0.00403001,"open":0.00404545,"close":0.00435873,"volume":44.34555992,"quoteVolume":10311.88079097,"weightedAverage":0.00430043},..] 第一列是Timestamp。我想把

我想知道是否有一种简单的方法可以将json数据加载到带有DateTimeIndex的Pandas数据帧中

data={"date":1405699200,"high":0.0045388,"low":0.00403001,"open":0.00404545,"close":0.00435873,"volume":44.34555992,"quoteVolume":10311.88079097,"weightedAverage":0.00430043},..]
第一列是Timestamp。我想把它作为DateTimeIndex加载。 可能吗?我试过这样的方法:

df = pd.DataFrame(data, index=['date'])
但是没有成功。
谢谢。

这个解决方案怎么样?似乎您的
数据
变量是一个列表,因此它基于以下内容:

df = pd.DataFrame(data, index=pd.to_datetime([i.get('date') for i in data], unit= 's'))


                        close        date      high      low      open  \
2014-07-18 16:00:00  0.004359  1405699200  0.004539  0.00403  0.004045   

                      quoteVolume    volume  weightedAverage  
2014-07-18 16:00:00  10311.880791  44.34556           0.0043  


DatetimeIndex(['2014-07-18 16:00:00'], dtype='datetime64[ns]', freq=None)

这个解决方案怎么样?似乎您的
数据
变量是一个列表,因此它基于以下内容:

df = pd.DataFrame(data, index=pd.to_datetime([i.get('date') for i in data], unit= 's'))


                        close        date      high      low      open  \
2014-07-18 16:00:00  0.004359  1405699200  0.004539  0.00403  0.004045   

                      quoteVolume    volume  weightedAverage  
2014-07-18 16:00:00  10311.880791  44.34556           0.0043  


DatetimeIndex(['2014-07-18 16:00:00'], dtype='datetime64[ns]', freq=None)

您可以将
date
列转换为
datetime
,并将其设置为数据帧的索引:

df1 = df.assign(date=pd.Timestamp.fromtimestamp(df.date)).set_index('date')
此时,数据帧
df1
的索引是
date
列,是
DateTimeIndex
对象

print(df1.index)
# DatetimeIndex(['2014-07-18 12:00:00'], dtype='datetime64[ns]', name='date', freq=None)

您可以将
date
列转换为
datetime
,并将其设置为数据帧的索引:

df1 = df.assign(date=pd.Timestamp.fromtimestamp(df.date)).set_index('date')
此时,数据帧
df1
的索引是
date
列,是
DateTimeIndex
对象

print(df1.index)
# DatetimeIndex(['2014-07-18 12:00:00'], dtype='datetime64[ns]', name='date', freq=None)
根据,似乎尚未实现为数据帧构造函数中的特定列指定数据类型;作为一种解决方法,您可以使用
astype
并向字典传递一个参数,以便在构建数据帧后转换列的数据类型:

df = pd.DataFrame(data).astype({'date': '<M8[s]'}).set_index('date')
df
df=pd.DataFrame(data).astype({'date':'根据,在数据帧构造函数中为特定列指定数据类型似乎尚未实现;作为一种解决方法,您可以使用
astype
并在构建数据帧后向字典传递一个参数来转换列的数据类型:

df = pd.DataFrame(data).astype({'date': '<M8[s]'}).set_index('date')
df

df=pd.DataFrame(data).astype({'date':')您可以将时间戳转换为datetime

import datetime as dt
import pandas as pd
data={"date":1405699200,"high":0.0045388,"low":0.00403001,"open":0.00404545}
data['date'] = dt.datetime.fromtimestamp(data['date']).strftime('%Y-%m-%d %H:%M:%S') 
df = pd.DataFrame(data, index=['date'])

您可以将时间戳转换为日期时间

import datetime as dt
import pandas as pd
data={"date":1405699200,"high":0.0045388,"low":0.00403001,"open":0.00404545}
data['date'] = dt.datetime.fromtimestamp(data['date']).strftime('%Y-%m-%d %H:%M:%S') 
df = pd.DataFrame(data, index=['date'])
我的结局是:

df = pd.read_json(url, orient='records', convert_dates=True)
df.index = df['date']
谢谢。

我最终得到了:

df = pd.read_json(url, orient='records', convert_dates=True)
df.index = df['date']

谢谢。

记住,在熊猫中,几乎所有东西都已经实现了,通常谷歌搜索更有效(更快)也就是说,你应该看看,尤其是
convert\u dates
parameterMember,在熊猫中,几乎所有的东西都已经实现了,通常谷歌搜索更有效(更快)也就是说,你应该看看,尤其是
convert\u dates
参数。它创建范围索引。你可以使用
set\u index
将某些列设置为索引。它创建范围索引。你可以使用
set\u index
设置某些列作为索引。它是有效的。如果没有for-loop没有更好的解决方案,这是一个很好的答案。它是有效的。如果没有for-loop没有更好的解决方案,这是一个很好的答案。