본문 바로가기

판다스

pandas > pivot_table 사용법 rows = mysql_util_query_to_all_dist_multithread(sql) df = pd.DataFrame(rows) df.columns = ['yyyymmdd', 'userid', 'postid', 'commentcnt'] pf = pd.pivot_table(df, index=['yyyymmdd'], values=['userid', 'commentcnt'], aggfunc={'userid':[len, pd.Series.nunique], 'comments':[np.sum, np.average]}, fill_value = 0, margins=False) print(pf) pf.to_csv("output.csv", mode='w') 이 코드를 활용하면 앞으로 시간을 많이 아낄수 있을 것 .. 더보기
파이썬 3.4 버전에 pandas 모듈 설치하기 (리눅스) 리눅스 서버에 설치된 파이썬 버전이 3.4인데 pandas 모듈을 설치하려고 할 때마다 오류가 나서 골치였는데, pandas 버전을 맞추면 설치가 된다는 걸 알게 되었다. https://stackoverflow.com/questions/38768996/how-to-install-pandas-for-python-3 How to install pandas for Python 3? I try to install pandas for Python 3 by executing the following command: sudo pip3 install pandas As a result I get this: Downloading/unpacking pandas Cannot fetch index base URL https:/.. 더보기
판다스 > 데이터프레임 값, 메타정보 둘러보기 import pandas as pd import numpy as np import seaborn as sns import ssl from bs4 import BeautifulSoup import requests import re ssl._create_default_https_context = ssl._create_unverified_context df = pd.read_csv('/Users/pandas_sample/part3/auto-mpg.csv', header=None) df.columns = ['mpg','cylinders','displacement','horsepower','weight', 'acceleration','model year','origin','name'] # 첫 5줄 보기 print.. 더보기
데이터프레임 -> 엑셀파일로 저장하기. import pandas as pd import numpy as np import seaborn as sns import ssl from bs4 import BeautifulSoup import requests import re ssl._create_default_https_context = ssl._create_unverified_context # 판다스 DataFrame() 함수로 데이터프레임 변환. 변수 df1, df2에 저장 data1 = {'name' : [ 'Jerry', 'Riah', 'Paul'], 'algol' : [ "A", "A+", "B"], 'basic' : [ "C", "B", "B+"], 'c++' : [ "B+", "C", "C+"]} data2 = {'c0':[1,2,3],.. 더보기
파이썬 웹 스크래핑 (BeautifulSoup) import pandas as pd import numpy as np import seaborn as sns import ssl from bs4 import BeautifulSoup import requests import re ssl._create_default_https_context = ssl._create_unverified_context # 미국 ETF 리스트 가져오기 url = "https://en.wikipedia.org/wiki/List_of_American_exchange-traded_funds" resp = requests.get(url) soup = BeautifulSoup(resp.text, 'lxml') rows = soup.select('div > ul > li') etfs = .. 더보기
Csv, 엑셀, Json, Html 파일에서 읽기 import pandas as pd import numpy as np import seaborn as sns import ssl ssl._create_default_https_context = ssl._create_unverified_context #### CSV 읽기 fp = '/Users/pandas_sample/part2/read_csv_sample.csv' df1 = pd.read_csv(fp) print(df1, '\n') # 첫 줄을 헤더로 취급하지 않는다 df2 = pd.read_csv(fp, header=None) print(df2, '\n') # index 컬럼을 지정하지 않았다. df3 = pd.read_csv(fp, index_col=None) print(df3, '\n') # co컬.. 더보기
DataFrame - 시리즈, 데이터프레임 연산 import pandas as pd import numpy as np import seaborn as sns import ssl ssl._create_default_https_context = ssl._create_unverified_context # 딕셔너리 데이터로 판다스 시리즈 만들기 student1 = pd.Series({'국어':100, '영어':80, '수학':90}) print(student1, '\n') # 학생의 과목별 점수를 200으로 나누기 percentage = student1 / 200 print(percentage, '\n') print(type(percentage), '\n') student1 = pd.Series({'국어':100, '영어':80, '수학':90}) stude.. 더보기
DataFrame - 범위 슬라이싱, set_index import pandas as pd # 범위 슬라이싱 exam_data = {'수학' : [90, 80, 70, 30], '영어' : [98, 89, 95, 22], '음악' : [85, 95, 100, 55], '체육' : [100, 90, 90, 77]} df = pd.DataFrame(exam_data, index=['a', 'b', 'c', 'd']) # 2행 간격으로 슬라이싱 하려면... ret = df.iloc[::2] print(ret) # 역순으로 정렬하려면 ret = df.iloc[::-1] print(ret) 일단위, 요일단위로 순차정렬 되어있다면 슬라이싱 간격을 활용할 수 있겠다. 전체를 역순으로 정렬하는 건 알겠는데, 특정 컬럼을 선택해서 정렬하는 방법은 없을까? import pan.. 더보기