๋ฐ˜์‘ํ˜•

 

 

๐Ÿ’ฌ KeyError: 'column_name'
๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๋‹ค ๋ณด๋ฉด ๊ผญ ํ•œ ๋ฒˆ์€ ๋งˆ์ฃผ์น˜๋Š” ์ด ์—๋Ÿฌ.
์™œ ๋ฐœ์ƒํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

 

 

โ— ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์˜ˆ์‹œ

KeyError: 'price'

→ ์—†๋Š” key(๋˜๋Š” column)๋ฅผ ์ฐพ์œผ๋ ค ํ•ด์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

 

๐Ÿ” ์›์ธ: ๋”•์…”๋„ˆ๋ฆฌ๋‚˜ DataFrame์—์„œ ์—†๋Š” ํ‚ค๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ

my_dict = {'a': 1, 'b': 2}
print(my_dict['c'])    # โŒ KeyError ๋ฐœ์ƒ

๋˜๋Š” Pandas์—์„œ:

import pandas as pd

df = pd.DataFrame({
    'name': ['a', 'b'],
    'value': [1, 2]
})

df['price']    # โŒ 'price'๋ผ๋Š” ์ปฌ๋Ÿผ์ด ์—†์Œ

 

 

๐Ÿงช ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๋ก€

โœ… ์˜คํƒ€

df['Price']    # ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ๋ฐœ์ƒ

 

โœ… drop(), groupby(), merge() ๋“ฑ์—์„œ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ ์ง€์ •

df.drop(columns=['price'])  # ์—†๋Š” ์ปฌ๋Ÿผ์ด๋ฉด KeyError

 

 

๐Ÿ› ๏ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

โœ” ์ปฌ๋Ÿผ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ ํ›„ ์‚ฌ์šฉ

if 'price' in df.columns:
    df['price']
else:
    print("์ปฌ๋Ÿผ์ด ์—†์Šต๋‹ˆ๋‹ค.")

 

โœ” get() ์‚ฌ์šฉ (๋”•์…”๋„ˆ๋ฆฌ์—์„œ)

value = my_dict.get('c', 0)  # ์—†์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’ 0

 

โœ” try-except๋กœ ์—๋Ÿฌ ๋ฐฉ์ง€

try:
    df['price']
except KeyError:
    print("ํ•ด๋‹น ์ปฌ๋Ÿผ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.")

 

 

โœ… ๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌ

  • KeyError๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ‚ค๋‚˜ ์ปฌ๋Ÿผ๋ช…์„ ํ˜ธ์ถœํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ์˜คํƒ€, ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„, ์ปฌ๋Ÿผ ์‚ญ์ œ ํ›„ ํ˜ธ์ถœ ๋“ฑ์˜ ์‹ค์ˆ˜๊ฐ€ ์›์ธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜ธ์ถœ ์ „์— in์œผ๋กœ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ฑฐ๋‚˜, get()์„ ์‚ฌ์šฉํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜์„ธ์š”.

 

๐Ÿ“˜ ๋‹ค์Œ์— ๋ณด๋ฉด ์ข‹์€ ๊ธ€

๐Ÿ”น [์—๋Ÿฌ ํ•ด๊ฒฐ] ValueError: could not convert string to float – ์™œ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚ ๊นŒ?

๋ฐ˜์‘ํ˜•

+ Recent posts