У меня сейчас есть словарь с несколькими вложенными списками, который немного запутан:
table = {"name":"ClosestDefender10ftPlusShooting",
"headers":["PLAYER_ID","PLAYER_NAME_LAST_FIRST","SORT_ORDER","GP","G",
"CLOSE_DEF_DIST_RANGE","FGA_FREQUENCY","FGM","FGA","FG_PCT","EFG_PCT","FG2A_FREQUENCY","FG2M","FG2A","FG2_PCT","FG3A_FREQUENCY","FG3M","FG3A","FG3_PCT"],
"rowSet":[[2544,"James, LeBron",1,6,2,"0-2 Feet - Very Tight",0.014,0,0.33,0,0,0.007,0,0.17,0,0.007,0,0.17,0],[2544,"James, LeBron",2,6,6,"2-4 Feet - Tight",0.144,0.83,3.5,0.238,0.31,0.082,0.33,2,0.167,0.062,0.5,1.5,0.333],[2544,"James, LeBron",3,6,5,"4-6 Feet - Open",0.192,2.17,4.67,0.464,0.571,0.103,1.17,2.5,0.467,0.089,1,2.17,0.462],[2544,"James, LeBron",4,6,6,"6+ Feet - Wide Open",0.11,1.33,2.67,0.5,0.656,0.041,0.5,1,0.5,0.068,0.83,1.67,0.5]]}
и используя панды, я хотел бы поместить его в таблицу, где все мои заголовки - это значения в списке headers
, а каждая строка названа в соответствии со значениями в rowSet
, как в таблицах, показанных здесь: http://stats.nba.com/player/2544/shots-dash/?sort=G&dir=-1
Я пробовал несколько вещей, таких как df = pd.DataFrame(list(table.items()))
и тому подобное, но все они возвращают довольно скремблированные таблицы, и поэтому я не уверен, как справиться с вложенной природой этого словаря.
Остальной код:
import requests
import pandas as pd
url = 'http://stats.nba.com/stats/playerdashptshots?DateFrom=&DateTo=&GameSegment=&LastNGames=6&LeagueID=00&Location=&Month=0&OpponentTeamID=0&Outcome=&PerMode=PerGame&Period=0&PlayerID=2544&Season=2017-18&SeasonSegment=&SeasonType=Playoffs&TeamID=0&VsConference=&VsDivision='
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
table = response.json()['resultSets'][5]
data_headers = table.get('headers')
Есть ли способ сделать это в несколько строк, или мне нужно пойти по более ручному маршруту?