对熊猫来说比较新,我有一个json和python文件:
{"dataset":{
"id": 123,
"data": [["2015-10-16",1,2,3,4,5,6],
["2015-10-15",7,8,9,10,11,12],
["2015-10-14",13,14,15,16,17]]
}}
&安培;
import pandas
x = pandas.read_json('sample.json')
y = x.dataset.data
print x.dataset
打印x.dataset和y工作正常,但是当我去访问子元素y时,它会返回一个'缓冲区'类型。发生了什么事?如何访问阵列内的数据?尝试y [0] [1]它会返回越界错误,并且迭代返回一个奇怪的系列' nul'但是,在打印x.dataset ...
之后,它似乎能够返回数据的第一部分答案 0 :(得分:2)
pandas Series的data
属性指向该系列中包含的所有数据的内存缓冲区:
>>> df = pandas.read_json('sample.json')
>>> type(df.dataset)
pandas.core.series.Series
>>> type(df.dataset.data)
memoryview
如果您有一个名为"data"
的列/行,则必须通过它的字符串名称来访问它,例如:
>>> type(df.dataset['data'])
list
由于这样的惊喜,它通常被认为是通过索引而不是通过属性访问来访问列的最佳实践。如果你这样做,你将得到你想要的结果:
>>> df['dataset']['data']
[['2015-10-16', 1, 2, 3, 4, 5, 6],
['2015-10-15', 7, 8, 9, 10, 11, 12],
['2015-10-14', 13, 14, 15, 16, 17]]
>>> arr = df['dataset']['data']
>>> arr[0][0]
'2015-10-16'