<jupyter_start><jupyter_text>연습3 감 잡기 이번에는 데이터를 인터넷에서 직접 가져올 겁니다. https://github.com/justmarkham 에게 자료와 교재를 제공해줘서 특별히 감사를 전합니다. 단계 1. 필요한 라이브러리를 다운로드한다.<jupyter_code>import pandas as pd<jupyter_output><empty_output><jupyter_text>단계2. 자료를 이 [주소](https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user) 에서 바로 불러온다.  단계 3. 이걸 users라는 변수에 할당하고 'user_id'를 색인으로 쓴다.<jupyter_code>users = pd.read_csv('https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user', 
                      sep='|', index_col='user_id')<jupyter_output><empty_output><jupyter_text>단계4. 첫 25개 열을 본다.<jupyter_code>users.head(25)<jupyter_output><empty_output><jupyter_text>단계5. 마지막 10개 열을 본다.<jupyter_code>users.tail(10)<jupyter_output><empty_output><jupyter_text>단계 6. 자료에 있는 관측치(observations)의 수는 총 몇 개인가?<jupyter_code>users.shape[0]<jupyter_output><empty_output><jupyter_text>단계 7. 데이터 셋에 있는 열(columns)의 수는 총 몇 개인가?<jupyter_code>users.shape[1]<jupyter_output><empty_output><jupyter_text>단계 8. 모든 열의 이름을 출력(print)한다.<jupyter_code>users.columns<jupyter_output><empty_output><jupyter_text>단계 9. 자료는 어떻게 색인되어 있나?<jupyter_code># "the index" (aka "the labels")
users.index<jupyter_output><empty_output><jupyter_text>단계 10. 각 열의 자료형(data type)은 무엇인가?<jupyter_code>users.dtypes<jupyter_output><empty_output><jupyter_text>단계 11. 직업(occupation) 열만 출력한다.<jupyter_code>users.occupation

#or

users['occupation']<jupyter_output><empty_output><jupyter_text>단계 12. 이 자료에는 서로 다른 직업이 얼마나 있는가?<jupyter_code>users.occupation.nunique()
#or by using value_counts() which returns the count of unique elements
#users.occupation.value_counts().count()<jupyter_output><empty_output><jupyter_text>단계 13. 가장 흔한 직업은 무엇인가?<jupyter_code>#Because "most" is asked
users.occupation.value_counts().head(1).index[0]

#or
#to have the top 5

# users.occupation.value_counts().head()<jupyter_output><empty_output><jupyter_text>단계 14. 데이터 프레임을 요약한다.<jupyter_code>users.describe() #Notice: by default, only the numeric columns are returned.<jupyter_output><empty_output><jupyter_text>단계 15. 모든 열을 요약한다.<jupyter_code>users.describe(include = "all") #Notice: By default, only the numeric columns are returned.<jupyter_output><empty_output><jupyter_text>단계 16. 오직 직업(occupation)열만 요약한다.<jupyter_code>users.occupation.describe()<jupyter_output><empty_output><jupyter_text>단계 17. users의 평균 나이(age)는 얼마인가? (반올림하자.)<jupyter_code>round(users.age.mean())<jupyter_output><empty_output><jupyter_text>단계 18. 빈도가 가장 적은 나이는 무엇인가?<jupyter_code>users.age.value_counts().tail() #7, 10, 11, 66 and 73 years -> only 1 occurrence<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13366718027734978, 'fraction_numerical': 0.020416024653312787, 'mean_word_length': 7.5147540983606556, 'pattern_counts': {'":': 0, '<': 69, '<?xml version=': 0, '>': 70, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '17', 'dir': 'jupyter-structured-clean-dedup', 'id': '190154', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 1357, 'n_tokens_neox': 1470, 'n_words': 185, 'path': '01_Getting_&_Knowing_Your_Data/Occupation/Exercise_with_Solution.ipynb', 'repo_name': 'twinstae/pandas_exercises', 'size': '2596'}