
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
3주차 숙제를 vs code에서 실행해 봤는데 경로만 다르고 같은 코드임에도 불구하고 colab에서는 실행되고 vs code에서는 에러가 뜨는 이유가 뭘까요?
작성한 코드 및 에러 메세지
import pandas as pd
done_data = pd.read_csv('C:/Users/User/Desktop/coding/python/data/done_detail.csv', sep=',')
format='%Y-%m-%dT%H:%M:%S.%f'
done_data['done_date_time'] = pd.to_datetime(done_data['done_date'], format=format)
#[날짜 컬럼].dt.day_name 으로 해당 날짜의 요일을 가져 올수 있어요!
done_data['done_date_time_weekday'] = done_data['done_date_time'].dt.day_name()
done_data['done_date_time_hour'] = done_data['done_date_time'].dt.hour
weeks = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
weekdata = done_data.groupby('done_date_time_weekday')['user_id'].count()
weekdata = weekdata.agg(weeks)
#week의 리스트에 따라 데이터들을 다시한번 재배열 할수 있어요!
hourdata = done_data.groupby('done_date_time_hour')['user_id'].count()
hourdata = hourdata.sort_index()
hourdata
import matplotlib.pyplot as plt
import numpy as np
#그래프 사이즈
plt.figure(figsize=(10,5))
plt.rc('font', family='NanumBarunGothic')
#그래프 x축 y축
plt.bar(weekdata.index, weekdata)
#그래프 명
plt.title('요일별 수강 완료 수강생 수')
#그래프 x축 레이블
plt.xlabel('요일')
#그래프 y축 레이블
plt.ylabel('수강생(명)')
#x축 레이블을 90도로 변환
plt.xticks(rotation=0)
#그래프 출력
plt.show()
#그래프 사이즈 변경
plt.figure(figsize=(10,5))
plt.rc('font', family='NanumBarunGothic')
#그래프 x축 y축
plt.plot(hourdata.index, hourdata)
#그래프 명
plt.title('시간별 수강 완료 사용자 수')
#그래프 x축 레이블
plt.xlabel('시간')
#그래프 y축 레이블
plt.ylabel('사용자(명)')
#x축 눈금 표시 하기
plt.xticks(np.arange(24))
#그래프 출력
plt.show()
#피벗테이블 만들기
#values : 열에 들어 가는 부분
#index : 행에 들어가는 부분
#aggfunc : 데이터 축약시 사용할 함수
done_data_pivot_table = pd.pivot_table(done_data, values='user_id',
index=['done_date_time_weekday'],
columns=['done_date_time_hour'],
aggfunc="count").agg(weeks)
done_data_pivot_table
#그래프 사이즈 변경
plt.figure(figsize=(14,5))
#pcolor를 이용하여 heatmap 그리기
plt.pcolor(done_data_pivot_table)
#히트맵에서의 x축
plt.xticks(np.arange(0.5, len(done_data_pivot_table.columns), 1), done_data_pivot_table.columns)
#히트맵에서의 y축
plt.yticks(np.arange(0.5, len(done_data_pivot_table.index), 1), done_data_pivot_table.index)
#그래프 명
plt.title('요일별 종료 시간 히트맵')
#그래프 x축 레이블
plt.xlabel('시간')
#그래프 y축 레이블
plt.ylabel('요일')
#plt.colorbar() 명령어를 추가하면 그래프 옆에 숫자별 색상값을 나타내는 컬러바를 보여 줍니다
plt.colorbar()
plt.show()
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
오류 내용
Traceback (most recent call last):
File "c:\Users\User\Desktop\coding\python\data\3weekshomework.py", line 5, in <module>
done_data['done_date_time'] = pd.to_datetime(done_data['done_date'], format=format)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\tools\datetimes.py", line 1050, in to_datetime
values = convert_listlike(arg._values, format)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\tools\datetimes.py", line 453, in _convert_listlike_datetimes
return _array_strptime_with_fallback(arg, name, utc, format, exact, errors)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\tools\datetimes.py", line 484, in _array_strptime_with_fallback
result, timezones = array_strptime(arg, fmt, exact=exact, errors=errors, utc=utc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "pandas\_libs\tslibs\strptime.pyx", line 530, in pandas._libs.tslibs.strptime.array_strptime
File "pandas\_libs\tslibs\strptime.pyx", line 351, in pandas._libs.tslibs.strptime.array_strptime
ValueError: time data "2020-08-07 12:02:16" doesn't match format "%Y-%m-%dT%H:%M:%S.%f", at position 0. You might want to try:
- passing `format` if your strings have a consistent format;
- passing `format='ISO8601'` if your strings are all ISO8601 but not necessarily in exactly the same format;
- passing `format='mixed'`, and the format will be inferred for each element individually. You might want to use `dayfirst` alongside this.
