***하면 안되는 사소하지만 중요한 실수 기록 문제상황 파이썬으로 주피터에서 코드를 짜는데 int값을 string값으로 변환해줘야 했다. 그래서 str(변수)를 사용했더니 위와 같은 오류가 났고, 데이터 컬럼을 직접 바꾸려 .astype(str)을 썼더니 data type not understood 라는 에러가 났다. 뭔가 잘못된 거 같아 주피터를 껐다켜봐도 안되고 컴퓨터를 껐다 켜봐도 안됐을 무렵 원인을 찾았다. 바로 내가 위의 코드에서 아무 생각 없이 str이라는 예약어를 변수로 사용했기 때문이었다. 그래서 jupyter가 str을 기존에 지원하는 str이 아닌 내가 지정한 변수 str로 사용한 거지,,!! 다른 편집기의 경우 한 파일에서 이전에 쓰던 코드를 지우고 새로 작성할 경우 문제가 없을 수 ..
프로그래밍/Python
착한가격업소를 찾아 지도에 매핑하는 코드를 짜보았다. import folium ... map = folium.Map(location=[target_table['위도'][0],target_table['경도'][0]], zoom_start=13) for i in target_table.index : name = target_table['업소명'][i] star = target_table['별점'][i] menu = target_table['메뉴'][i] price = target_table['가격'][i] iframe = "이름 : " + name+ " 별점 : "+ star + " 대표메뉴 :" + menu + " [" + price + "]" popup = folium.Popup(iframe, min_w..
데이터 프레임을 가공하다보면 인덱스가 뒤죽박죽인 경우가 있다. 아니면 기본 인덱스가 0부터 시작인데 1부터 시작으로 바꾸고 싶을 수도 있을 것이다. 나의 경우에는 기존의 데이터프레임에서 원하는 튜플만을 뽑아내니 0~1로 세팅되는게 아니라 기존 df에서의 인덱스를 가져와서 for문을 돌리기가 힘들어서 새로 세팅해주려 한다. (뽑아올때 0부터 세팅하는게 있을것 같긴한데 일단 이거부터 정리!) 방법은 아주 간단하다 for문을 돌려 index를 새로 설정해주면 되는데 간단히 한줄로 사용하기 위해 내포for문을 사용할 것이다. df.index = [i for i in range(len(df))] 이렇게 하면 끝~ 확인해보시면 0부터 인덱스가 설정되어 있을것이다. 1부터 설정하고 싶다면 1부터 len(df) + 1..
- 인덱스 정렬 df_sort_index = df.sort_index(ascending=False) df_sort_index - 컬럼값 정렬 df_sort_value = df.sort_values(by=df.columns[0],ascending=False) df_sort_value # df.columns[0] 이나 '컬럼명' 으로 해줄 수 있다. df_sort_value_double = df.sort_values(by=[df.columns[0],df.columns[1]],ascending=False) df_sort_value_double df_sort_value_double = df.sort_values(by=['이름','나이'],ascending=False) df_sort_value_double ** ..
정규표현식은 패턴을 갖는 문자열의 집합을 표현하는데에 사용되는 기법이다. 주로 복잡한 문자열에서 특정한 패턴과 일치하는 문자열을 찾고 대체하기 위해서 사용하여 복잡한 문자열을 처리할 때 유용하다. 파이썬에서는 re 패키지를 통해 정규표현식을 사용할 수 있다. Pattern 객체의 메소드 match 전체 문자열에서 시작부터 패턴과 일치하는 첫번째 문자열을 찾아 매치 객체로 반환 search 전체 문자열에서 패턴과 일치하는 첫번째 문자열을 찾아 매치 객체로 반환 findall 전체 문자열에서 패턴과 일치하는 모든 문자열을 찾아 리스트로 반환 finditer 전체 문자열에서 패턴과 일치하는 모든 문자열을 찾아 반복 가능 객체로 반환 - match() : 시작부터 패턴과 일치하는 첫번째 문자열 찾기 p = re..
우선 csv로 파일을 저장하는 방법은 table.to_csv('./data.csv', encoding='CP949') 운영체제별로 마이크로소프트의 경우 CP949를 맥과 리눅스는 UTF-8을 사용하여 인코딩한다. 남이 저장한 파일을 읽어올때는 pd.read_csv("./datas.csv", encoding='UTF-8',index_col=0) 이렇게 읽어오면 되는데 이러한 에러코드를 만나게 될것이다. ### 인코딩 에러 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc7 in position 0: invalid continuation byte 저장할때 인코딩 방식을 CP949로 했는데 UTF-8로 요청을 했기 때문이다. 이때는 당황하지 말고 encodin..
리스트의 수를 세는 방식이 크게 두가지가 있다. 하나는 len(list) 이것으로 list의 전체 요소의 갯수를 구할 수 있다. 두번째는 list.count('a') 이것으로 list안의 요소에 'a'가 있는지 확인하여 그 갯수를 반환한다. 만약 'a'가 없다면 0을 반환하게 되니 조건식을 통해 해당요소가 존재하는지 여부도 확인할 수 있다. if list.count('a') == 0 : print('a가 없다.') else : print('a가 있다.')
추가 / 갱신 : 새로운 열 이름이라면 해당 열이 추가될 것이고 기존에 있던 열 이름이라면 갱신될 것입니다. df['열이름'] = data_list 삭제 del df['열이름']