본문 바로가기

Python/Pandas19

[Python] 데이터프레임 합치기 :: pd.merge() pd.merge는 공통의 열을 기준으로 두 데이터프레임을 합쳐준다. sql에서 join과 같은 역할이다. import pandas as pd # 기준열 이름이 같을 때 pd.merge(left, right, on = '기준열', how = '조인방식') # 기준열 이름이 다를 때 pd.merge(left, right, left_on = '왼쪽 열', right_on = '오른쪽 열', how = '조인방식') left : 왼쪽 데이터프레임 right : 오른쪽 데이터프레임 on : (두 데이터프레임의 기준열 이름이 같을 때) 기준열 how : 조인 방식 {'left', 'right', 'inner', 'outer'} 기본값은 'inner' left_on : 기준열 이름이 다를 때, 왼쪽 기준열 right.. 2020. 10. 13.
[Python] 데이터프레임 txt로 저장하기 데이터프레임을 .csv파일이나 .xlsx로 저장하는 방법은 df.to_csv와 df.to_excel로 익히 알려져있다. 그렇다면 .txt 파일로 저장하고 싶을 땐 어떻게 해야할까? 처음에는 open() 내장함수로 txt파일에 wirte해야하는지 고민했는데 생각보다 간단한 방법으로 해결되었다. Pandas import pandas as pd 판다스를 임포트해주고 예시 데이터프레임을 생성하였다. DataFrame을 .txt로 저장하기 1. df.to_csv('pizza.txt') 그냥 to_csv를 한 후 파일형식을 .txt로 지정하면 된다. csv는 콤마로 구분한 것이기에 sep을 지정하지 않으면 구분자가 ,로 지정된다. 2. 구분자 변경 # 구분자 변경 df.to_csv('pizza.txt', sep =.. 2020. 9. 4.
[Python] df.copy() :: 복사본 만들기 / 얕은복사 & 깊은 복사 판다스에는 데이터프레임의 복사본을 만들어주는 pandas.DataFrame.copy가 있다. 이는 a = b와는 다른 방식의 복사이다. a = b는 원본 데이터가 변하면 똑같이 변하는 얕은 복사인 반면, pandas.DataFrame.copy는 복사 당시의 데이터프레임 상태만 복사되는 깊은 복사이다. 얕은 복사를 하면 복사본은 원본과 데이터/index를 공유하지만, 깊은 복사는 복사본이 자신만의 데이터/index를 갖게한다. 예시 데이터 import pandas as pd a = pd.DataFrame([['Kim', 23], ['Lee', 12], ['Jeong', 28]], columns = ['Name', 'Age']) a just_copy = a pandas_copy = a.copy() just_.. 2020. 6. 18.
[Pandas] pd.read_html() :: html에서 표 가져오기/데이터프레임으로 만들기 ⭐️ Colab에서 실행해보기 https://colab.research.google.com/drive/1qoZmWeqZV8c_-yOG2bKLMe3aDZJ2O0ia pandas import pandas as pd pd.read_html을 이용하면 html에 있는 table속성에 해당하는 값을 가져올 수 있다. 이는 웹페이지에 있는 표를 불러오겠다는 의미이다. pandas.read_html(URL, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tupleize_cols=None, thousands=', ', encoding=None, decimal='.', converters=.. 2020. 3. 31.
[Python] 문자열 처리 :: 양 끝 공백제거/맨 앞 공백제거/맨 뒤 공백제거 양 끝 공백 제거 : .strip() 왼쪽 공백 제거 : .lstrip() 오른쪽 공백 제거 : .rstrip() Import Pandas import pandas as pd 양쪽 공백제거 ' word '.strip() 왼쪽 공백제거 ' word '.lstrip() 오른쪽 공백제거 ' word '.rstrip() 데이터프레임의 column에 적용할 때 예시 데이터프레임 생성 데이터프레임 전체 혹은 한 컬럼에 strip(), rstrip(), lstrip()을 그대로 적용하면 오류가 난다. 'DataFrame' object has no attribute 'strip' 'Series' object has no attribute 'strip' 이때 컬럼별로 적용하려면 .str. 을 입력해주어야 한다. # 양쪽.. 2020. 2. 18.
[Python] pd.read_csv & pd.to_csv :: csv파일 불러오기 & 내보내기, 저장하기 외부의 csv파일을 python의 dataframe으로 불러올 수도 있고 python으로 만든 dataframe을 csv 파일로 내보낼 수 있다. import pandas as pd pandas.read_csv('path/filename.csv', sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_defa.. 2019. 11. 26.
[Python] 데이터프레임 만들기 :: pd.DataFrame() Import Pandas import pandas as pd Dataframe 생성 pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False) 1. student_card = pd.DataFrame({'ID':[20190103, 20190222, 20190531], 'name':['Kim', 'Lee', 'Jeong'], 'class':['H', 'W', 'S']}) student_card 2. student_card = pd.DataFrame([[20190103, 'Kim', 'H'], [20190222, 'Lee', 'W'], [20190531, 'Jeong', 'S']], columns = ['ID', 'name', '.. 2019. 11. 26.
[Python] pd.get_dummies() :: One-Hot Encoding / 원핫인코딩 머신러닝에서 문자로 된 데이터는 모델링이 되지 않는 경우가 있다. 대표적으로 회귀분석은 숫자로 이루어진 데이터만 입력을 해야한다. 문자를 숫자로 바꾸어 주는 방법 중 하나로 One-Hot Encoding이 있다. 가변수(dummy variable)로 만들어주는 것인데, 이는 0과 1로만 이루어진 열을 생성하는 것이다. 이때 1은 있다, 0은 없다를 나타낸다. 0과 1로 이루어진 여러개의 열을 생성하는 One-Hot Encoding과 달리, LabelEncoding은 하나의 열에 사과 > 0, 바나나 > 1, 체리 > 2, 3,.. 식으로 숫자로 변환하는 것이다. 자세한건 여기서 볼 수 있다. https://mizykk.tistory.com/12 [Scikit-learn] LabelEncoder() :: .. 2019. 11. 21.
[Python] Pandas 정리 import numpy as np import pandas as pd # 주피터에서 보이는 행 늘리기 pd.set_option('max_rows', 500) # 주피터에서 보이는 열 늘리기 pd.set_option('max_columns', 500) ################################################# # 데이터프레임 만들기 pd.DataFrame({'col':[data]}) pd.DataFrame([[20190103, 'Kim', 'H'], [20190222, 'Lee', 'W'], [20190531, 'Jeong', 'S']], columns = ['ID', 'name', 'class']) # 행 조회 df.head() # 상위 n개 값만 보이기 df.tail() .. 2019. 11. 11.