Python每日一记196>>>pandas.core.indexing.IndexingError: Too many indexers

以下代码出现了pandas.core.indexing.IndexingError: Too many indexers问题

import pandas as pd
import numpy as np
# data_2018=pd.read_excel('E:\\ywj严文杰备份\\带时间消费明细-持续更新\\18年消费明细.xlsx')
data_2019=pd.read_excel('E:\\ywj严文杰备份\\带时间消费明细-持续更新\\19年-1214.xlsx')
data_opid=pd.read_excel('E:\\ywj严文杰备份\\带时间消费明细-持续更新\\2019-12-15 微信会员用户.xlsx')
data_chaoshi=pd.read_excel('E:\\ywj严文杰备份\\带时间消费明细-持续更新\\超市会员消费-20191214.xlsx')
data=pd.concat([data_2019,data_chaoshi],axis=0)
data_wuphone=data.loc[data['手机号码'].isnull()]
print(data_wuphone.isnull().sum())
data_youphone=data.loc[data['手机号码'].notnull()]
data_wuphone=pd.merge(data_wuphone.loc[:,[x for x in data_wuphone.columns if x!='手机号码']],data_opid.loc[:,'卡号','手机号码']
                      .dropna().drop_duplicates(subset=['卡号']).drop_duplicates(subset=['手机号码']),on='卡号',how='left')
data=pd.concat([data_youphone,data_wuphone],axis=0,join='outer')
print(data_wuphone.isnull().sum())

Python每日一记196>>>pandas.core.indexing.IndexingError: Too many indexers_第1张图片
Python每日一记196>>>pandas.core.indexing.IndexingError: Too many indexers_第2张图片
由以上源代码的解释,大概可以理解为如果维度大于本身维度,就报错。
然后我们去看看出问题的代码:

data_wuphone=pd.merge(data_wuphone.loc[:,[x for x in data_wuphone.columns if x!='手机号码']],data_opid.loc[:,'卡号','手机号码']

我们发现其实就是下面这一点:

data_opid.loc[:,'卡号','手机号码']

应该修改为下面的代码,也就是说多列要用中括号阔起来。

data_opid.loc[:,['卡号','手机号码']]

你可能感兴趣的:(Python每日一记196>>>pandas.core.indexing.IndexingError: Too many indexers)