목록Python/Pandas (21)
군침이 싹 도는 코딩
chicago_df_1 = pd.read_csv('Chicago_Crimes_2005_to_2007.csv') >>> ParserError: Error tokenizing data. C error: Expected 23 fields in line 533719, saw 24 # 데이터 프레임을 불러올 때 이러한 에러가 나는 이유는 데이터 프레임 안에 일부 행 데이터가 잘못되어 있어서 발생하는 에러이다 chicago_df_1 = pd.read_csv('Chicago_Crimes_2005_to_2007.csv', error_bad_lines=False) # 디버깅하는 방법은 파라미터에 error_bad_lines=False 를 써주면 된다 이렇게하면 에러가 난 행 부분은 제외하고 가져오게 된다

chicago_df.index = chicago_df['Date'] chicago_df.head(2) # Time Series 데이터를 처리할때 그룹바이 함수로는 날짜데이터를 바로 년 단위 월 단위 등으로 묶어서 처리가 불가능하다 따라서 이것을 처리해주는 함수 resample을 써야하는데 이것을 사용하기 위해서는 우선 인덱스를 Date 컬럼으로 만들어 줘야한다 df_year = chicago_df.resample('YS').size() plt.plot(df_year) plt.show() # 리샘플을 사용해서 년의 시작점을 기준으로 묶어 차트를 그려보았다 # 리샘플에 들어가는 파라미터는 이 사진을 참고한다

similar_movies_list = pd.DataFrame() for i in range( myRatings.shape[0] ) : movie_title = myRatings['Movie Name'][i] recom_movies = corr_movie[movie_title].dropna().sort_values(ascending=False).to_frame() recom_movies.columns = ['correlation'] recom_movies['weight'] = recom_movies['correlation'] * myRatings['Ratings'][i] similar_movies_list = similar_movies_list.append( recom_movies ) # 추천 영화 작업..

corr_titanic = df.corrwith( df['Titanic (1997)'] ).to_frame() # Item based collaborative filltering 을 하기 위해서는 먼저 상관관계를 분석해야 한다 먼저 분석하고싶은 영화의 컬럼을 넣어 corrwith로 전체 컬럼과 상관관계를 분석한다 그다음 그것을 데이터 프레임으로 만들어준다 corr_titanic.columns = ['correlation'] # 컬럼의 이름을 correlation으로 고쳐주도록 한다 corr_titanic = corr_titanic.join(ratings_mean_count_df['count']) # 조인함수를 통해 영화 별점의 갯수를 가진 테이블과 붙여준다 corr_titanic.dropna(inplac..

movies_rating_df.head(2) # 피봇 테이블을 통해 데이터프레임의 전체적인 형식을 바꿀수있다 df = movies_rating_df.pivot_table(index='user_id', columns='title', values='rating', aggfunc='mean') df # 피봇 테이블을 통해 index는 유저아이디 columns은 타이틀 values는 레이팅 aggfunc은 평균값으로 바꿨다

판다스에서 문자열을 데이트타임으로 바꿔주고 싶을때에는 datetime 을 사용하면 된다 date_list >>> ['2022-01-04', '2022-01-07', '2022-05-11', '2022-06-10', '2022-07-03'] pd.to_datetime(date_list) >>> DatetimeIndex(['2022-01-04', '2022-01-07', '2022-05-11', '2022-06-10', '2022-07-03'], dtype='datetime64[ns]', freq=None) # 데이트 리스트라는 문자열로 이루어진 리스트를 판다스 데이트타임으로 리스트 안에 문자열 전체를 데이트 타임으로 바꿔주었다 pd.date_range() 시작 날짜와 종료 날짜를 세팅하면 알아서 날짜를 채..
판다스의 문자열을 슬라이싱하기 위해서는 str을 사용하여야 한다. 그렇지 않으면 슬라이싱이 정상적으로 되지않는다. df[컬럼].str[:] 판다스의 시리즈를 데이터 프레임으로 만들때는 to_frame() 을 쓰면 된다 변수.to_frame()