일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- data
- DataAccess
- hierarchical_clustering
- count()
- string
- nan
- sklearn
- Python
- len()
- del
- dendrogram
- function
- IN
- append()
- DataFrame
- Dictionary
- analizer
- pandas
- list
- wcss
- insert()
- 덴드로그램
- 최댓값
- elbow method
- matplotlib
- 반복문
- Machine Learning
- 분류 결과표
- 최솟값
- numpy
- Today
- Total
목록Python/Pandas (14)
개발공부

groupby() 로는 년, 월, 일, 시, 분, 초 단위 등으로 묶을 수 없다. resample() 함수는 이를 가능하게 해준다. 먼저 Date 컬럼을 인덱스로 만들어주면 resample 함수를 사용할 수 있게 된다. 이 함수를 통해 년, 월, 일, 시 등등으로 묶어서 처리가 가능해 진다. 아래와 같은 데이터 프레임이 있다. 시카고 에서 일어난 범죄에 대한 데이터이다. 이 데이터 프레임의 인덱스를 Date 로 바꿔준다. # 해당 컬럼은 그대로 놔두고 인덱스로도 사용 chicago_df.index = chicago_df['Date'] chicago_df 이제 resample() 을 이용해보자 년도로 리샘플한 후, 년도별 몇개의 범죄 데이터를 가지고 있는지 확인하기 df_year = chicago_df.r..

df 속성을 이용하면 datetime 형식의 데이터에서 각 년, 월, 일, 시, 분, 초 등 원하는 기준으로 데이터를 읽어낼 수 있다. import pandas as pd dates = ['2012-02-04 09:10:00', '2017-07-07 14:10:00', '2019-11-08 15:20:10', '2021-12-22 22:15:30'] dates = pd.to_datetime(dates) df = pd.DataFrame(data = {'Date' : dates}) df # 날짜 전체 읽기 >>> df['Date'].dt.date 0 2012-02-04 1 2017-07-07 2 2019-11-08 3 2021-12-22 Name: Date, dtype: object # 년만 읽기 >>> d..

pandas.read_csv로 csv파일을 읽어올 때 가끔 중간에 이상한 구간이 있어서 전체를 불러올 때 오류가 생기는 경우가 있다. 이럴때는 error_bad_lines=False 파라미터를 추가하면 에러가 나는 라인은 제외하고 정상적인 라인들만 읽어오게 된다. 위와 같이 에러가 나온곳을 스킵했다는 것을 볼 수 있다.

import pandas as pd Pandas에서 시간처리를 위한 datetime64를 생성하는 법은 datetimeIndex() , to_datetime() 2가지가 있다. pandas.datetimeIndex() >>> dates = ['2022-01-04', '2022-01-07', '2022-01-08', '2022-01-22'] >>> dates ['2022-01-04', '2022-01-07', '2022-01-08', '2022-01-22'] >>> pd.to_datetime(dates) DatetimeIndex(['2022-01-04', '2022-01-07', '2022-01-08', '2022-01-22'], dtype='datetime64[ns]', freq=None) pandas...

import pandas as pd import numpy as np pivot_table() 피봇팅한다는 것은 즉 컬럼의 값을 열로 만드는것을 말한다. pivot_table()은 해당 컬럼의 데이터들에 중복데이터들이 있어도, 이를 하나의 인덱스로 합치고 수치 데이터들의 평균(디폴트)을 출력한다. 아래와 같은 데이터프레임으로 예를 들어보자. Name으로 피봇팅을 해도 되는지 (즉 카테고리컬 데이터가 맞는지) 확인을 해보자. >>> df['Name'].nunique() 12 df의 총 행은 17개인데 nunique()의 값은 12이기 때문에 Name은 카테고리컬 데이터이다. 평균값으로 피봇테이블 생성 그럼 Name을 기준으로 피봇테이블을 생성해보자. pd.pivot_table(df, index = ['Na..

데이터 프레임 붙이기 concat() 단순히 다른 데이터 프레임을 붙여서 합친다. import pandas as pd df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}, index=[0, 1, 2, 3]) df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7']}, index=[4, 5, 6, 7]) df..

import pandas as pd df = pd.DataFrame({'Employee ID':[111, 222, 333, 444], 'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'], 'Salary [$/h]':[35, 29, 38, 20], 'Years of Experience':[3, 4 ,9, 1]}) df sort_index() 인덱스에 기반하여 정렬한다. # ascending = True면 오름차순, False면 내림차순 df.sort_index() sort_values() 데이터에 기반하여 정렬한다. # 경력을 오름차순으로 정렬 df.sort_values('Years of Experience') # 경력을 내림차순으로 정렬 df.sort_value..

import pandas as pd df = pd.DataFrame({'Employee ID':[111, 222, 333, 444], 'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'], 'Salary [$/h]':[35, 29, 38, 20], 'Years of Experience':[3, 4 ,9, 1]}) df 판다스 데이터프레임에서는 True와 False로 결과가 나오는 식을 [ ] 안에 입력하면 그에 맞는 데이터를 찾을 수 있다. 아래의 예로 이해해 보자 # 경력이 3년 이상인 사람의 데이터를 가져오기 >>> df['Years of Experience'] >= 3 0 True 1 True 2 True 3 False Name: Years of Experi..

groupby() 카테고리컬 데이터의 각 데이터별로 묶어서 처리하는 방법 카테고리컬 데이터인지 알 수 있는 방법은 nunique()와 unique()를 이용하면 된다. # 카테고리컬 데이터 (Categorical Data) # 갯수가 정해져있고 그 안에서 나눌 수 있는 것 >>> df['Year'].nunique() 3 >>> df['Year'].unique() array([1990, 1991, 1992], dtype=int64) df의 행갯수는 8개인데 Year 컬럼의 유니크한 갯수는 3개이다. 그러므로 Year의 데이터는 카테고리컬 데이터이다. # 각 년도'별로' 연봉 총합 구하라 >>> df.groupby('Year')['Salary'].sum() Year 1990 153000 1991 162000..

items2 = [{'bikes': 20, 'pants': 30, 'watches': 35, 'shirts': 15, 'shoes':8, 'suits':45}, {'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5, 'shirts': 2, 'shoes':5, 'suits':7}, {'bikes': 20, 'pants': 30, 'watches': 35, 'glasses': 4, 'shoes':10}] df = pd.DataFrame(data = items2, index = ['store 1', 'store 2', 'store 3']) df NaN 이 얼마나 있는지 파악 isna() df.isna() # 각 컬럼별로 NaN의 수 df.isna().sum() # 총..