본문 바로가기

전체 글263

[pandas] set과 frozenset의 차이 둘다 집합의 개념이고 중복된 value를 허용하지 않는 공통점이 있다 다만 set은 mutable하고 frozenset은 immutable하다. (이 관계는 list와 tuple의 관계와 같다) 그래서 set은 딕셔너리의 key가 될 수 없고, frozenset은 딕셔너리의 key가 될 수 있다  {set((1, 2, 2, 3)) : 'A'} TypeError: unhashable type: 'set' set은 mutable 하기에 해시할 수 없는 자료형이라 딕셔너리의 key가 될 수 없다  {frozenset((1, 2, 2, 3)) : 'A'} 위 코드는 아래를 반환한다{frozenset({1, 2, 3}): 'A'} 집합의 성격을 갖고 있기에 중복된 value인 2는 하나만 갖게 된다 set이 딕셔.. 2023. 8. 7.
TypeError: unhashable type: 'set' TypeError: unhashable type: 'set' 번역 : 해시 할 수 없는 자료형: 'set' 에러 발생 예시my_dict = {set(('A', 'B')): '1'} # TypeError: unhashable type: 'set'위 코드에서 set(('A', 'B'))는 집합 자료형이므로, 변경 가능한(mutable) 객체이기에 해시 할 수 없어 에러가 발생합니다. 에러 원인 파이썬에서 딕셔너리의 키는 반드시 변경 불가능한 객체여야 합니다. 변경 가능한 객체(예: 집합, 리스트, 딕셔너리)는 내부 상태가 변할 수 있으므로 해시값이 변할 가능성이 있어 키로 사용할 수 없습니다. 해결 방법 집합(set)을 변경 불가능한 객체로 변환하면 해결됩니다.frozenset: 집합 자료형의 변경 불가능한.. 2023. 8. 7.
OverflowError: Python int too large to convert to C long OverflowError: Python int too large to convert to C long 번역 : "Python int가 너무 커서 C long으로 변환할 수 없습니다." 예 import pandas as pd s = pd.Series(['100000000000', '2000000000000']) s 0 100000000000 1 2000000000000 dtype: object s는 자료형이 object이고 문자열로 이루어져 있다 s를 정수로 바꾸고 싶다. 아래와 같은 코드를 쓰면 되겠지만 큰 숫자라서 다음과 같은 에러가 난다 s.astype('int') OverflowError: Python int too large to convert to C long 이것은 astype('int')가 .. 2023. 8. 7.
TypeError: '<' not supported between instances of 'str' and 'int' TypeError: ' 2023. 8. 7.
TypeError: '<' not supported between instances of 'type' and 'type' TypeError: ' 2023. 8. 7.
[pandas] 특정 열의 값으로 데이터 프레임 나눠서 리스트로 만들기 아래의 예제를 보자 import pandas as pd data = {'종류':['사과', '사과', '귤', '사과', '바나나', '바나나'], '판매량' : [10, 20, 30, 40, 50, 60]} df = pd.DataFrame(data) df 이 df를 종류의 값으로 나눠 사과, 귤, 바나나의 데이터 프레임을 분리하고 싶다. 이것을 분리해 리스트(dfs)에 담아보자 dfs = [df for key, df in df.groupby('종류')] 확인을 위해 dfs[0]를 출력해보자 귤의 데이터 프레임을 얻었다. 혹은 아래와 같은 코드로도 가능하다 g = df.groupby('종류') dfs = [g.get_group(x) for x in g.groups] 유튜브에서 판다스 강의 중입니다 htt.. 2023. 8. 6.