4번째 프로젝트 github 코드리뷰
4번째 프로젝트 github 코드리뷰
train_df = train_df.copy()
train_df["time"] = pd.to_datetime(train_df["time"], unit='s')
user_time = train_df.groupby('user')['time'].agg(['min', 'max']).reset_index()
user_time = train_df.groupby('user', as_index=False)['time'].agg(['min', 'max'])
라고 해도 될 것 같습니다.
무슨 차이냐면
- 첫 번째 방법은 그룹화 후
reset_index()
를 추가로 호출 - 두번째 방법
groupby()
에서as_index=False
를 사용하면 바로 ‘user’ 컬럼이 인덱스가 아닌 일반 컬럼으로 생성
Args:
filename (str): Name of the file to load the matrix from
"""
load_path = self.data_dir / filename
굳이 변수로 할당 안 해도 될 것 같습니다.
# load_path 변수 할당 없이 바로 사용
return np.load(self.data_dir / filename) # 예시
# 또는
with open(self.data_dir / filename, 'r') as f: # 예시
# 파일 처리 로직
변수 할당을 줄여 코드를 간결하게하고 메모리 사용을 줄일 수 있다.
# 각 사용자별로 추천 항목 추가
for user, user_df in df.groupby('user'):
for item in user_df['item']:
all_recommendations[user].append(item)
df.groupby("user")["item"].apply(list)
로 갈음할 수 있어보입니다.
파이썬 스러운 코드로 수정이 가능하다.
self.users = [i for i in range(num_user)]
리스트 보다는 텐서 로 할당해두는 게 나았을 것 같아요.
self.users = torch.arange(num_user) # 텐서로 변경
리스트 컴프리헨션을 텐서로 변경하는 것이 바람직하다.