我有一个字典Dict1
,密钥为Dates and Sims.
Dates
是一个形状为100x1的数组,Sims
的形状为100x5
我在尝试:
import pandas as pd
df = pd.Dataframe.from_dict(Dict1)
但由于模拟人生的大小而出错。有没有办法我可以创建DataFrame,每行列的Sims大小为5?即每行可以存储为大小为5的列表或数组。
编辑:
Dict1['Dates']
array([datetime.datetime(2016, 11, 1, 0, 0),
datetime.datetime(2016, 11, 1, 1, 0),
datetime.datetime(2016, 11, 1, 2, 0), ...,
datetime.datetime(2025, 12, 31, 21, 0),
datetime.datetime(2025, 12, 31, 22, 0),
datetime.datetime(2025, 12, 31, 23, 0)], dtype=object)
Dict1['Sims']
array([[ 63.89694316, 35.8551162 , 40.36134283, 57.23648392,
35.96607425, 61.166471 ],
[ 47.94894386, 53.95396849, 48.94336457, 51.04541849,
28.69973176, 49.78683505],
[ 63.90314179, 43.29467789, 36.97811714, 52.33639618,
45.24190878, 69.9059308 ]...]])
EDIT2:
我希望创建数据框,以便我可以执行以下操作:
print(df[datetime.datetime(2016, 11, 1, 0, 0)])
[ 63.89694316, 35.8551162 , 40.36134283, 57.23648392,
35.96607425, 61.166471 ]
答案 0 :(得分:2)
您可以使用df = pd.DataFrame(Dict1['Sims'], index=Dict1['Dates'])
df.ix[datetime.datetime(2016, 11, 1, 0, 0)]
作为索引。
df.ix[key]
请注意,您应该使用df[key]
索引器,因为list
默认为查找列,而不是行。
或者,如果您确实需要包含Dict1['Sims']
的单个列,请确保在创建数据框之前df = pd.DataFrame({'Sims': Dict1['Sims'].tolist()}, index=Dict1['Dates'])
是Python列表,而不是Numpy数组。
{'Sims': ...}
list
结构欺骗Pandas将数据解释为单个docker run -v c:\temp\website:/var/www/html (you get the picture)
系列,而不是多维数组。