Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah saya Mendapat \'Pandas Hashtable KeyError\' Apabila Mengakses Lajur DataFrame?

Mengapakah saya Mendapat \'Pandas Hashtable KeyError\' Apabila Mengakses Lajur DataFrame?

DDD
DDDasal
2024-11-16 10:09:02925semak imbas

Why am I Getting a

Penyelesaian Masalah"Ralat: Pandas Hashtable KeyError"

Apabila cuba mendapatkan semula lajur tertentu daripada DataFrame panda, anda mungkin menghadapi "hashtable keyerror." Ralat ini berlaku apabila nama lajur yang ditentukan tidak wujud dalam DataFrame.

Penyiasatan:

Mulakan dengan mengesahkan nama lajur sebenar dalam DataFrame. Gunakan kod berikut untuk menyenaraikan nama lajur, memastikan anda mengalih keluar sebarang ruang putih di hadapan atau di belakang:

print(reviews_new.columns.tolist())

Potensi Penyelesaian:

1. Ruang putih dalam Nama Lajur

Jika nama lajur mengandungi ruang putih, anda boleh:

  • Kosongkan ruang putih daripada nama lajur:

    reviews_new.columns = reviews_new.columns.str.strip()
  • Gunakan ruang skipinitial semasa membaca fail CSV:

    reviews_new = pd.read_csv("D:\aviva.csv", skipinitialspace=True)

2. Pemisah Tersuai

Jika fail CSV menggunakan pemisah selain daripada koma lalai (,), anda perlu menentukannya menggunakan parameter sep:

  • Koma bertitik sebagai pemisah:

    reviews_new = pd.read_csv("D:\aviva.csv", sep=';')
  • Ruang putih sebagai pemisah:

    # sep is whitespace
    reviews_new = pd.read_csv("D:\aviva.csv", sep='\s+')
    
    # Another option for whitespaces as separator
    reviews_new = pd.read_csv("D:\aviva.csv", delim_whitespace=True)

3. Nama Lajur Tiada

Jika DataFrame tidak mempunyai nama lajur, kod berikut akan mendapatkan semula nilai lajur menggunakan indeks DataFrame:

print(df.index)
print(df.index.get_level_values('column_name'))

Nota Tambahan:

  • Untuk DataFrames dengan berbilang indeks (MultiIndex), gunakan get_level_values ​​untuk mendapatkan nilai lajur mengikut nama peringkat.
  • Pastikan nama lajur yang ditentukan sepadan dengan huruf besar dan huruf besar yang tepat bagi lajur dalam DataFrame.

Atas ialah kandungan terperinci Mengapakah saya Mendapat 'Pandas Hashtable KeyError' Apabila Mengakses Lajur DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn