해결된 질문
작성
·
159
0
데이터마님에 전처리100문제 훑어보고 있어요
람다식이 있어서 시험환경 문제1의 데이터로 응용해서 해보려니 안되네요 ㅠㅠ
그냥 딕셔너리 형태를 넣으면 되구요...
help에서는 딕셔너리 아니면 시리즈를 넣으라고 되어있는데 그래서 안되는건지...
a.cyl = a.cyl.astype('object')
dic = {
'4' : 'N',
'6' : 'a',
'8' : 'b'
}
a['newcyl'] =a.cyl.map(dic)
print(a.cyl)
a['newcyl'] =a.cyl.map(lambda x: dic[x])
> Makefile:6: recipe for target 'py3_run' failed
make: *** [py3_run] Error 1
Traceback (most recent call last):
File "/goorm/Main.out", line 18, in <module>
a['newcyl'] =a.cyl.map(lambda x: dic[x])
File "/usr/local/lib/python3.9/dist-packages/pandas/core/series.py", line 4237, in map
new_values = self._map_values(arg, na_action=na_action)
File "/usr/local/lib/python3.9/dist-packages/pandas/core/base.py", line 880, in mapvalues
new_values = map_f(values, mapper)
File "pandas/_libs/lib.pyx", line 2870, in pandas._libs.lib.map_infer
File "/goorm/Main.out", line 18, in <lambda>
a['newcyl'] =a.cyl.map(lambda x: dic[x])
KeyError: 6
help
map(arg, na_action=None) -> 'Series' method of pandas.core.series.Series instance
Map values of Series according to an input mapping or function.
Used for substituting each value in a Series with another value,
that may be derived from a function, a ``dict`` or
a :class:`Series`.
Parameters
----------
arg : function, collections.abc.Mapping subclass or Series
Mapping correspondence.
na_action : {None, 'ignore'}, default None
If 'ignore', propagate NaN values, without passing them to the
mapping correspondence.
답변 1
0
a.cyl가 어떤 데이터인지 알 수가 없어 문제가 무엇인지 알기가 어렵네요!
혹시 숫자 형태였다면 아래처럼 해야 하지 않을까 싶어요~!
dic = {
4 : 'N',
6 : 'a',
8 : 'b'
}
답변 감사합니다. astype 하지않고 알려주신 방법으로도 작동 확인하였습니다.
데이터는 시험환경 작업형1에 내장되어있는 데이터입니다. map(dic) 이 되니 람다는 남은 진도를 다 빼고 다음번에 숙지해야 될 것 같네요.