목록pandas (12)
컴공생의 다이어리
pandas dataframe(데이터프레임)을 dict(사전)형으로 변환 to_dict()함수를 통해 데이터프레임을 사전 자료형으로 변환할 수 있다. 다음과 같이 데이터프레임이 있다고 가정하자. import pandas as pd df = pd.DataFrame([['철수',16,'Seoul'], ['영희',20,'Busan'], ['희철',18,'Seoul']], columns = ['Name','Age','City']) df.to_dict()는 열 이름은 키로 변환되고 각 레코드는 값으로 변환되고 인덱스는 키로 사용된다. df.to_dict() # {'Age': {0: 16, 1: 20, 2: 18}, # 'City': {0: 'Seoul', 1: 'Busan', 2: 'Seoul'}, # 'Name..
pandas dataframe의 특정 열에 함수 적용 pandas dataframe에서 특정 열에 함수를 적용하고자 한다면 아래와 같이 apply함수를 사용하면 된다. # lambda를 사용하는 방법 df['키'] = df['키'].apply(lambda x:str(x)+'cm') # 함수를 사용하는 방법 def add_str_kg(x): return str(x)+'kg' df['몸무게'] = df['몸무게'].apply(add_str_kg) In [1]: import pandas as pd In [2]: df = pd.DataFrame({'학번':[1, 2, 3, 4], '키':[163, 153, 175, 180], '몸무게':[50, 46, 70, 68]}) df Out[2]: 학번 키 몸무게 0 1..
pandas 결측값 확인 및 처리 결측값은 탐색적 데이터 분석에서도, 그 후 더 나아가 머신 러닝 알고리즘을 통해 분석을 할 때에도 성능에 영향을 줄 수 있는 값이다. 결측값은 아예 제거를 해주거나, 특정 값으로 채워주거나 크게 두 가지 선택을 해주는 것이 좋다. 결측값 확인 - isnull(), isnull().sum() 결측값을 확인해보려면 isnull().sum()을 사용하는 것이 간편하다. In [1]: import pandas as pd In [2]: df = pd.DataFrame({"v1":[None,200,None,400], "v2":[None,200,100,250], "v3":[40,60,500,None]}) df Out[2]: v1 v2 v3 0 NaN NaN 40.0 1 200.0 2..
seaborn의 heatmap과 pairplot으로 상관계수 시각화 In [1]: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns In [2]: test_df = pd.DataFrame({"v1":[100,200,300,400], "v2":[400,200,100,250], "v3":[40,60,60,100]}) test_df Out[2]: v1 v2 v3 0 100 400 40 1 200 200 60 2 300 100 60 3 400 250 100 corr함수는 상관계수를 구하는 함수이며 pearson은 상관계수를 구하는 계산 방법 중 하나 In [3]: corr = test_df.corr(method='pearson')..
pandas 데이터 프레임의 특정 컬럼 접근 데이터프레임의 특정 열에 접근하는 방법은 두가지가 있다. 첫번째 방법은 데이터프레임이름.열의이름 형식으로 접근하는 것이다. 이때, 열이름으로 한글도 가능하다. df.score df.점수 하지만 이 방법에서 열 이름에 띄어쓰기가 있다면 그 방법으로 컬럼에 접근이 불가능하다. 그렇기 때문에 컬럼명에서 띄어쓰기로 의미 구분이 필요하다면 _(언더바)를 사용해 의미를 구분해주는 것이 좋다. 두번째 방법은 데이터프레임이름['열의이름'] 형식으로 접근하는 것이다. df['score'] df['점수'] df['국어 점수'] 이 방법을 사용한다면 열이름에 띄어쓰기가 있어도 사용이 가능하다. 여러 컬럼에 접근 하나의 열에 접근하는 것이 아닌 다수의 열에 접근하려면 데이터프레임이..
pandas 데이터프레임의 값(df.values)과 열(컬럼) 이름(df.columns) 데이터프레임의 행들의 값을 보고 싶다면 values를 열의 이름을 알고 싶다면 columns를 사용하여 볼 수 있다. df.values#행들의 데이터 df.columns#열의 이름 데이터 프레임의 값이나 열의 이름을 목록으로 변환하고 싶다면 tolist()를 사용하면 된다. df.values.tolist()#행들의 데이터 목록으로 변환 df.columns.tolist()#열의 이름 목록으로 변환 예시 In [1]: import pandas as pd In [2]: url='https://raw.githubusercontent.com/CodeDiary18/Seoul-Public-Bike/main/data/%EB%8C%..
pandas의 데이터 타입(data type) dtype int64 float64 bool datetime64 category object 설명 정수형 실수형 부울형 날짜표현 카테고리 문자열 or 복합형 * Category형 타입? 카테고리형(Categorical) 데이터는 데이터프레임의 칼럼에서 특정한 형태의 데이터가 반복되는 경우 사용한다. 예를 들어 성별(남성, 여성), 나이(10대, 20대, ...)와 같이 특정 구간의 데이터가 반복되는 경우를 말한다. 카테고리형 데이터를 이용하면 반복된 데이터를 코드화하여 데이터의 사이즈를 줄여서 메모리 사용량이 줄어 들고 데이터 처리 속도가 빨라진다. 데이터프레임의 각 컬럼의 타입 출력 데이터 프레임의 각 컬럼의 타입을 출력하려면 dtypes를 통해 확인할 수..
pandas(판다스) 데이터 프레임(dataframe) 출력 pandas의 데이터 프레임을 출력하는 방법에 대해 정리하고자 한다. 데이터 프레임의 상위 n개 행 출력 데이터 프레임의 상위 행을 출력하려면 head()를 사용하면 된다. head함수의 인자로 출력하고 싶은 행의 수(n)를 넣어주면 상위 n개의 행을 출력한다. 인자를 넣지 않으면 head함수의 기본값인 5개의 행이 출력된다. import pandas as pd df.head()#상위 5개의 행 출력 df.head(10)#상위 10개의 행 출력 데이터 프레임의 하위 n개 행 출력 데이터 프레임의 하위 행을 출력하려면 tail()를 사용하면 된다. tail함수의 인자로 출력하고 싶은 행의 수(n)를 넣어주면 하위 n개의 행을 출력한다. 인자를 넣..
판다스(pandas)에서 날짜와 시간 판다스의 날짜와 시간 함수는 넘파이(numpy)를 기반으로 만들어졌다. 하나의 날짜만 사용할 때는 Timestamp로 표현하고, 두 개 이상의 배열을 이룰 때는 DatetimeIndex로 표현한다. Timestamp 함수 Timestamp()함수를 사용해 특정 날짜를 표현할 수 있다. 숫자가 들어오는 경우 1970년 1월 1일을 기준으로 Timestamp에 넣은 만큼 더해준다. 이때, unit이라는 옵션에 단위를 설정해 어디에 더할지 설정할 수 있다. import pandas as pd pd.Timestamp(1239.1238934) # 디폴트 : 나노초 #Timestamp('1970-01-01 00:00:00.000001239') pd.Timestamp(1239.1..
여러 개의 컬럼 합치기 여러 개의 컬럼을 합쳐서 하나의 열로 만들어 보고싶다면 아래의 예시와 같이 하면 열을 합칠 수 있다. In [1]: import pandas as pd In [2]: df = pd.DataFrame({'이름':['유재석','강호동','신동엽','이경규'], '시간':[1,3,5,7], '분':[5, 40, 35, 57]}) df Out[2]: 이름 시간 분 0 유재석 1 5 1 강호동 3 40 2 신동엽 5 35 3 이경규 7 57 In [3]: cols = ['시간', '분'] df['시간_분_combined'] =df[cols].apply(lambda row: ':'.join(row.values.astype(str)), axis=1) df Out[3]: 이름 시간 분 시간_분_..