【发布时间】:2016-02-27 09:58:22
【问题描述】:
给定我从 API 中提取的列表。我设法使用熊猫重新格式化了这些数据。但是,我正在尝试获取这些数据的平均值,然后将其逐行打印出来,而不是并排格式。
{
"resource": "playergamelog",
"parameters": {
"PlayerID": 201939,
"LeagueID": "00",
"Season": "2014-15",
"SeasonType": "Regular Season"
},
"resultSets": [
{
"name": "PlayerGameLog",
"headers": [
"SEASON_ID",
"Player_ID",
"Game_ID",
"GAME_DATE",
"MATCHUP",
"WL",
"MIN",
"FGM",
"FGA",
"FG_PCT",
"FG3M",
"FG3A",
"FG3_PCT",
"FTM",
"FTA",
"FT_PCT",
"OREB",
"DREB",
"REB",
"AST",
"STL",
"BLK",
"TOV",
"PF",
"PTS",
"PLUS_MINUS",
"VIDEO_AVAILABLE"
],
"rowSet": [
[
"22014",
201939,
"0021401229",
"APR 15, 2015",
"GSW vs. DEN",
"W",
19,
4,
10,
0.4,
2,
4,
0.5,
0,
0,
0,
2,
2,
4,
7,
5,
0,
2,
1,
10,
14,
1
],
[
"22014",
201939,
"0021401212",
"APR 13, 2015",
"GSW vs. MEM",
"W",
29,
6,
10,
0.6,
3,
6,
0.5,
0,
0,
0,
0,
4,
4,
8,
1,
0,
3,
2,
15,
24,
1
],
[
"22014",
201939,
"0021401192",
"APR 11, 2015",
"GSW vs. MIN",
"W",
35,
11,
21,
0.524,
5,
11,
0.455,
7,
8,
0.875,
0,
4,
4,
7,
4,
0,
3,
1,
34,
17,
1
],
[
"22014",
201939,
"0021401174",
"APR 09, 2015",
"GSW vs. POR",
"W",
35,
17,
23,
0.739,
8,
13,
0.615,
3,
3,
1,
1,
1,
2,
10,
0,
0,
4,
2,
45,
21,
1
],
[
"22014",
201939,
"0021401156",
"APR 07, 2015",
"GSW @ NOP",
"L",
35,
9,
18,
0.5,
5,
8,
0.625,
2,
2,
1,
1,
5,
6,
9,
1,
0,
2,
3,
25,
4,
1
],
[
"22014",
201939,
"0021401150",
"APR 05, 2015",
"GSW @ SAS",
"L",
30,
9,
17,
0.529,
5,
10,
0.5,
1,
2,
0.5,
0,
4,
4,
6,
1,
0,
4,
2,
24,
-16,
1
],
[
"22014",
201939,
"0021401142",
"APR 04, 2015",
"GSW @ DAL",
"W",
27,
4,
12,
0.333,
1,
4,
0.25,
2,
3,
0.667,
2,
2,
4,
3,
1,
0,
1,
1,
11,
9,
1
],
[
"22014",
201939,
"0021401126",
"APR 02, 2015",
"GSW vs. PHX",
"W",
34,
10,
22,
0.455,
6,
11,
0.545,
2,
2,
1,
1,
7,
8,
5,
0,
0,
6,
3,
28,
-1,
1
]
]
}
]
}
我的代码打印如下:
FG3A 3.83
FG3_PCT 0.34
FTM 5.50
FTA 7.17
FT_PCT 0.78
OREB 0.75
当我收到来自 API 的上述响应时。我指定
data= response_shots.json()['resultSets'][0]['rowSet'] #stats is a list
# Then I assign/store the headers obtained from this API:
headers_traditional = data['resultSets'][0]['headers']
# Then I take list of lists from data and reformat it using the following:
traditional_stats = pd.DataFrame(data, columns=headers_traditional)
# If I want to print the traditional stats with mean I use:
print(traditional_stats.mean())
但每当完成此操作或我有多个我正在评估的玩家时,它都会在下面打印下一个玩家的结果。我宁愿让他们并排打印,或者所有一个球员的平均水平在一条线上,然后移动到下一个球员(同时仍然使用相同的标题)
【问题讨论】:
-
查看pandas.pydata.org/pandas-docs/stable/reshaping.html 重塑pandas df
-
此时我需要修改我拥有的列表列表。代码首先以 pandas 格式打印出第一个感兴趣的玩家。然后打印出它正下方的下一个。
-
能否请包含您正在使用的 df / API 的标题.. 我正在尝试重新创建
-
请编辑您的问题以包含您格式化的 DataFrame。
标签: python json api pandas enumerate