使用熊猫转换时的值错误不匹配

问题描述

这是我不断收到的不匹配错误。我输入的是“ 202710”。

Traceback (most recent call last):
  File "nbastatsrecieveit.py",line 29,in <module>
    df.columns = headers
  File "C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\pandas\core\generic.py",line 5149,in __setattr__
    return object.__setattr__(self,name,value)
  File "pandas\_libs\properties.pyx",line 66,in pandas._libs.properties.AxisProperty.__set__
  File "C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\pandas\core\generic.py",line 564,in _set_axis
    self._mgr.set_axis(axis,labels)
  File "C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\pandas\core\internals\managers.py",line 226,in set_axis
    raise ValueError(
ValueError: Length mismatch: Expected axis has 0 elements,new values have 24 elements

说实话,我不确定该如何解决此问题,因为它适用于特定的玩​​家ID,但并非适用于所有情况。这是我其余的代码

from nba_api.stats.endpoints import shotchartdetail
import pandas as pd
import json
from openpyxl import Workbook

print('Player ID?')
playerid = input()

filename = str(playerid) + '.xlsx'

response = shotchartdetail.ShotChartDetail(
    team_id= 0,context_measure_simple = 'FGA',#last_n_games = numGames,game_id_nullable = '0041900403',player_id= playerid
)

content = json.loads(response.get_json())

# transform contents into dataframe
results = content['resultSets'][0]
headers = results['headers']
rows = results['rowSet']
#df = pd.DataFrame(rows)
df = pd.DataFrame(rows)
df.columns = headers

# write to excel file
df.to_excel(filename,index=False)

解决方法

这是因为您的df的ID为202710为空。异常处理将在这里解决问题-

df = pd.DataFrame(rows)
try:
    df.columns = headers
except:
    pass