我正在尝试将梦幻篮球数据从yql导入 pandas 数据框,但我遇到了嵌套内容的问题。
来自 yql (results.rows) 的数据看起来像这样(当我使用 type(results.rows) 时,我得到列表)。
{u'display_position': u'PF',
u'editorial_player_key': u'nba.p.4175',
u'editorial_team_abbr': u'Uta',
u'editorial_team_full_name': u'Utah Jazz',
u'editorial_team_key': u'nba.t.26',
u'eligible_positions': {u'position': u'PF'},
u'headshot': {u'size': u'small',
u'url': u'http://l.yimg.com/iu/api/res/1.2/KjAPlP83IIrP9iReWfjyjw--/YXBwaWQ9eXZpZGVvO2NoPTIxNTtjcj0xO2N3PTE2NDtkeD0xO2R5PTE7Zmk9dWxjcm9wO2g9NjA7cT0xMDA7dz00Ng--/http://l.yimg.com/a/i/us/sp/v/nba/players_l/20101116/4175.jpg'},
u'image_url': u'http://l.yimg.com/iu/api/res/1.2/KjAPlP83IIrP9iReWfjyjw--/YXBwaWQ9eXZpZGVvO2NoPTIxNTtjcj0xO2N3PTE2NDtkeD0xO2R5PTE7Zmk9dWxjcm9wO2g9NjA7cT0xMDA7dz00Ng--/http://l.yimg.com/a/i/us/sp/v/nba/players_l/20101116/4175.jpg',
u'is_undroppable': u'0',
u'name': {u'ascii_first': u'Paul',
u'ascii_last': u'Millsap',
u'first': u'Paul',
u'full': u'Paul Millsap',
u'last': u'Millsap'},
u'player_id': u'4175',
u'player_key': u'304.p.4175',
u'position_type': u'P',
u'uniform_number': u'24'}
当我表演
DataFrame(results.rows)
它可以很好地导入数据,但是 headshot 和 name 中的数据都作为带有嵌套列表的列导入。
我可以从 iPython 访问子列表,但是当我尝试将其导入数据框时出现错误:
results[0]['name']
{u'ascii_first': u'Pau',
u'ascii_last': u'Gasol',
u'first': u'Pau',
u'full': u'Pau Gasol',
u'last': u'Gasol'}
DataFrame([results[0]['name'])
ValueError: If use all scalar values, must pass index
我想要的行为是将嵌套列表导入为它们自己的列,而不是作为包含嵌套列表的列。我怎样才能做到这一点?
我想要的最终结果是具有以下布局的 DataFrame:
+---------------------------------------------------------------------------------------+
|display_position | (...) | ascii_first | ascii_last | first | full | last | player_id |
+---------------------------------------------------------------------------------------+
| Data | | | | | | | |
+---------------------------------------------------------------------------------------+