Python実行エラーKeyError:「['...']がインデックスにありません」

Python を使用して列を指定して xlsx データを読み込むときにこのエラーが発生しました。具体的な原因はわかりません。

このエラーは通常、存在しないインデックスまたは列にアクセスしようとしていることを意味します。このエラーを解決するには、使用しているコードを調べて、次のいずれかの条件が存在するかどうかを判断する必要があります。

  1. 間違ったインデックスまたは列名: DataFrame に正しいインデックスまたは列名があるかどうかを確認します。df.columns または df.index 属性で確認できます。
  2. 欠損データ: 一部のインデックスまたは列にアクセスできなくなる欠損データがあるかどうかを確認します。df.isnull().sum() を使用して欠損データの量を確認し、充填、削除、補間などの操作を検討できます。
  3. データ型の問題: インデックスまたは列が予期したデータ型であることを確認してください。たとえば、文字列インデックスを使用している場合は、それらがデータフレーム内で整数型ではなくオブジェクト型として正しく設定されていることを確認します。

このエラーに対する私の解決策は主にインデックスのリセットを試みることです。

df = df .reindex(columns=columns) #インデックスのリセット

この問題はインデックスのリセット後に解決されたことが判明しました。

ソースコードは次のとおりです。

import pandas as pd
pd.set_option('display.max_columns', None)                               #显示所有列
pd.set_option('display.unicode.ambiguous_as_wide', True)                 #设置各列对齐
pd.set_option('display.unicode.east_asian_width', True)         
pd.set_option('display.width', 180)                                      #设置打印宽度
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']    #解决中文乱码
import matplotlib.colors as mcolors

src_df = pd.read_excel('./data4.xlsx', sheet_name='淘宝201805')
print('原始数据集:')
print(src_df.head(20))

columns = ['买家会员名','买家支付宝账号','买家应付货款','买家实际支付金额','订单状态','收货人姓名','收货地址','联系手机','订单创建时间','订单付款时间','宝贝标题','宝贝种类','订单备注','宝贝总数量','类别','图书编号']
src_df = src_df.reindex(columns=columns)      #索引重置
print('\n选择需要读入的列:')
df = src_df[columns]
print(df.head(20))

おすすめ

転載: blog.csdn.net/guigenyi/article/details/128340043