Python 3.x TypeError:只有整数标量数组才能转换为标量索引

Python 3.x TypeError:只有整数标量数组才能转换为标量索引,python-3.x,pandas,merge,Python 3.x,Pandas,Merge,我正在尝试合并两个数据帧。以下是数据帧列的外观: toi_数据: MultiIndex([( 'Player',), ( 'Pos',), ( 'Shift',), ( 'GP',), ( 'EV TOI',), ('EV CF% Rel',), ( 'EV GF/60',), (

我正在尝试合并两个数据帧。以下是数据帧列的外观:

toi_数据:

MultiIndex([(    'Player',),
            (       'Pos',),
            (     'Shift',),
            (        'GP',),
            (    'EV TOI',),
            ('EV CF% Rel',),
            (  'EV GF/60',),
            (  'EV GA/60',),
            (    'PP TOI',),
            ('PP CF% Rel',),
            (  'PP GF/60',),
            (  'PP GA/60',),
            (    'SH TOI',),
            ('SH CF% Rel',),
            (  'SH GF/60',),
            (  'SH GA/60',),
            (      'Year',),
            (      'Team',)],
           )
新的"基本法":

Index(['Player', 'Team', 'Year', 'Age', 'Pos', 'Country', 'Ht', 'Wt',
       'Birth Date', 'Draft', 'S/C', 'Salary', 'Summary', 'GP', 'G', 'A',
       'PTS', '+/-', 'PIM', 'EV', 'PP', 'SH', 'GW', 'EV.1', 'PP.1', 'SH.1',
       'S', 'S%', 'TOI', 'ATOI', 'OPS', 'DPS', 'PS', 'BLK', 'HIT', 'FOW',
       'FOL', 'FO%'],
      dtype='object')
下面是我试图将两者合并的代码:

df2 = pd.merge(df1, toi_data, on=['Player', 'Team', 'Year'])
我得到的错误是:

TypeError: only integer scalar arrays can be converted to a scalar index

所以我的想法是toi_数据帧导致抛出错误。我曾尝试使用.unstack()和reset_index(inplace=True)转换多索引,但两者都不起作用。关于如何解决这个错误有什么想法吗?提前谢谢你

您可能希望在合并之前执行
toi_data.columns=toi_data.columns.drop_level(1)
。这个多索引是多余的,所以最好先弄清楚为什么要创建它,然后在那里修复它。谢谢你的评论@ALollz,不幸的是,当我尝试drop_level调用时,我遇到了这个错误
indexer:级别太多:索引只有1个级别,而不是2个
。这真的让我很困惑,因为第一个错误将DF称为多索引,但这个错误表示它只有1级…嗯。让我想想为什么会这样,为什么我不能移除它
toi_data.columns=toi_data.columns.get_level_values(0)
在这种情况下应该是更好的选择,以使多索引平坦化。感谢您对@ALollz的快速响应。获得\u级别\u值(0)工作!非常感谢你!您可能希望在合并之前执行
toi_data.columns=toi_data.columns.drop_level(1)
。这个多索引是多余的,所以最好先弄清楚为什么要创建它,然后在那里修复它。谢谢你的评论@ALollz,不幸的是,当我尝试drop_level调用时,我遇到了这个错误
indexer:级别太多:索引只有1个级别,而不是2个
。这真的让我很困惑,因为第一个错误将DF称为多索引,但这个错误表示它只有1级…嗯。让我想想为什么会这样,为什么我不能移除它
toi_data.columns=toi_data.columns.get_level_values(0)
在这种情况下应该是更好的选择,以使多索引平坦化。感谢您对@ALollz的快速响应。获得\u级别\u值(0)工作!非常感谢你!