Python 使用DatetimeIndex将价格报价器加载到Pandas数据框中
我想知道是否有一种简单的方法可以将json数据加载到带有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。我想把
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没有更好的解决方案,这是一个很好的答案。