본문 바로가기

판다스/판다스 팁50

[pandas] GitHub의 csv파일을 바로 데이터 프레임으로 불러오기 github에 올려진 csv파일을 별도의 다운로드 없이 바로 데이터프레임으로 불러 오는 방법을 알려 드리겠습니다 1. 먼저 github에서 불러올 파일을 클릭합니다 저와 똑같은 github로 실습할 분들을 위한 github 링크 : https://github.com/panda-kim/csv 2. 다음으로 해당 파일의 주소를 복사합니다 3. pandas를 import하고 해당 주소를 파이썬 개발 환경에 따옴표와 함께 붙여 넣습니다 본 실습은 주피터 노트북을 사용했습니다 import pandas as pd 'https://github.com/panda-kim/csv/blob/main/git_csv.csv' 4. 해당 주소의 끝에 ?raw=true 를 추가하고 변수 url로 지정한 뒤 read_csv 함수로 .. 2023. 11. 13.
[pandas] read_csv 함수로 데이터 프레임 부를 때 파일의 encoding 방식 알아내기 read_csv 함수로 데이터 프레임을 불러올 때 encoding이 잘못 지정되면 아래와 같은 에러가 납니다 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte 아래 파일을 다운 받아서 실습해 봅시다 초심자분이시라면 저와 똑같이 내컴퓨터 C:\에 datafiles라는 폴더를 만들어 위 파일을 저장해서 실습해주세요 다운받은 위 csv 파일을 이용해 데이터 프레임을 불러오겠습니다 import pandas as pd file = 'C://datafiles//chk_encoding.csv' # 파일경로의 \(역슬래시)는 //(슬래시 2개)로 바꿔야 합니다 pd.read_csv(file) 다음과 같은 에.. 2023. 11. 11.
[pandas] csv 파일에서 따옴표 안의 콤마(,)는 seperator로 적용하고 싶지 않을 때 csv 파일에서 따옴표 안의 comma(,)는 seperator로 적용하고 싶지 않을 때 예 Issue,Content Test,"A, B" Test,"A, B, C" 위와 같은 csv 파일이 있을 때 Test 다음의 콤마(,)는 seperator로 적용하고 싶지만 "A,B"의 콤마는 seperator로 적용하고 싶지 않아서 따옴표(")에 묶여있다. 이때는 read_csv 함수의 quotechar인자를 사용하면 된다 예제코드 import io csvs = ''' Issue,Content Test,"A, B" Test,"A, B, C" ''' url = io.StringIO(csvs) csv 파일로 실습해야 하지만 문자열을 csv 파일처럼 읽게 해주는 StringIO 함수를 사용해서 마치 csv 파일의 ur.. 2023. 9. 5.
[pandas] 날짜(timestamp)에서 특정 기간이 흐른 뒤의 날짜를 반환하는 방법 특정 기간이 흐른 뒤의 날짜를 반환하는 방법 예제1 import pandas as pd today = '2023-09-05' today_dt = pd.to_datetime(today) today_dt today는 2023-09-05의 날자를 뜻하는 문자열이고 today_dt는 2023-09-05를 datetime 자료형으로 바꾼 것이다 2023-09-05로 부터 4개월 뒤의 날짜를 datetime 자료형으로 반환해보자 이럴 때는 DateOffset 함수를 이용하면 손쉽게 가능하다 today_dt + pd.DateOffset(months=4) output: Timestamp('2024-01-05 00:00:00') 4개월 뒤인 2024-01-05에 해당하는 timestamp를 반환한다 15일 뒤의 날짜를 .. 2023. 9. 5.
집계 결과를 열로 만드는 방법 groupby + transform을 사용하면 집계 결과를 열로 만들 수 있다. 먼저 다음 예제 코드를 보자 import pandas as pd data = {'학생': ['김판다', '강승주', '조민영', '최진환', '박연준', '고준희'], '반': ['A', 'A', 'B', 'B', 'B', 'C'], '점수': [0, 100, 20, 40, 60, 30]} df = pd.DataFrame(data) 이 df를 활용해 그림처럼 소속반의 평균이 담긴 열을 만들어보자 예를 들어 A반의 학생은 첫번째 행의 김판다와 두번째 행의 강승주이다. 둘의 점수가 0점과 100점이니 A반의 평균은 50이 되고 A반 소속인 김판다와 강승주의 데이터는 반평균열에서 둘다 50이 된다 방법 groupby + trans.. 2023. 8. 30.
Timedelta 자료형을 실수(float)로 바꾸는 방법 판다스에서는 두 시점의 시간 차이를 Timedelta 자료형으로 나타낸다 다음 예를 보자 import pandas as pd date1 = pd.to_datetime('2023-01-02') date2 = pd.to_datetime('2023-03-10') date1 - date2 Timedelta('-67 days +00:00:00') 2023-01-02와 2023-03-10의 시간 차이는 '-67 days +00:00:00' 임을 의미한다 이것을 그냥 실수로 -67로 표현하고 싶을 때가 있을 것이다. 그때는 Timedelta로 표현된 1day로 나눠주면 된다 (date1 - date2) / pd.Timedelta('1 day') 결과: -67.0 손쉽게 실수(float)로 변환할 수 있다 유튜브에서 .. 2023. 8. 30.