Словарь с вложенными списками в Dataframe

1

В настоящее время у меня есть словарь с некоторыми вложенными списками, которые немного беспорядочны:

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]]}

и используя pandas, я хотел бы получить его в таблице, где мои заголовки - все значения в списке headers, и каждая строка имеет имя после значений в rowSet, например, таблицы, показанные здесь: http://stats.nba. ком/игрок /2544/выстрелы тира /? сортировать = G & реж = -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')

есть ли способ сделать это в нескольких строках, или мне нужно пойти по более ручному маршруту?

Теги:
pandas
python-3.x

1 ответ

2
Лучший ответ
df=pd.DataFrame(data=table['rowSet'], columns=table['headers'])

выход:

   PLAYER_ID PLAYER_NAME_LAST_FIRST  SORT_ORDER  GP  G   CLOSE_DEF_DIST_RANGE  \
0       2544          James, LeBron           1   6  2  0-2 Feet - Very Tight   
1       2544          James, LeBron           2   6  6       2-4 Feet - Tight   
2       2544          James, LeBron           3   6  5        4-6 Feet - Open   
3       2544          James, LeBron           4   6  6    6+ Feet - Wide Open   

   FGA_FREQUENCY   FGM   FGA  FG_PCT  EFG_PCT  FG2A_FREQUENCY  FG2M  FG2A  \
0          0.014  0.00  0.33   0.000    0.000           0.007  0.00  0.17   
1          0.144  0.83  3.50   0.238    0.310           0.082  0.33  2.00   
2          0.192  2.17  4.67   0.464    0.571           0.103  1.17  2.50   
3          0.110  1.33  2.67   0.500    0.656           0.041  0.50  1.00   

   FG2_PCT  FG3A_FREQUENCY  FG3M  FG3A  FG3_PCT  
0    0.000           0.007  0.00  0.17    0.000  
1    0.167           0.062  0.50  1.50    0.333  
2    0.467           0.089  1.00  2.17    0.462  
3    0.500           0.068  0.83  1.67    0.500  
  • 0
    ааааааааааа, это так просто, да ... хорошо спасибо лол

Ещё вопросы

Сообщество Overcoder
Наверх
Меню