【学习记录| 本周总结】 Week 23 - 练习练习再练习、数据清洗
封面图片还是来自我很喜欢的Visual Artist @ evieshaffer
本周总结
- Python pandas exercises (完成)
- Python numpy exercises (进行中)
- 需要了解更多Web scraping, regex
内容及反思
Python exercises
按着上一周的计画,在写本篇前算是完成了整份Pandas exercises,说是「算是完成」,是因为练习的确做完,但我还没把重点单独整理出来。如果没有把重点整理出来,学习到的内容最后也很容易随着完成了的练习,被放到一边然后忘掉。所以明天得抽出时间,先暂停其他,把这项放到最优先的次序。
在完成Pandas 的练习后,我又在github上找了两套关于Numpy 的练习来做,分别是rougier/numpy-100和Kyubyong/numpy_exercises ,第一份就是如标题所名,100题Numpy,第二份算是以练习形式,带你大概走一转Numpy 的Documentation。
说起来我的次序其实好像没有很对, Pandas 是建设在Numpy 的基础上,按正常逻辑应该是先学Numpy 再学Pandas。不过我已经由Pandas 开始,然后才学习Numpy,我当作是两个一起学习,反正目前也没有感受到,这个顺序有给我带来什么太大的影响。
Data Cleaning 小整理
这一周也看了一些以Python进行Data Cleaning的步骤及相关的coding,这次想把一些在做练习时,觉得有用的方法稍作整理放在一起,也作为一个检查清单、步骤,方便以后做Data Cleaning 。
# 1. Import libraries
import pandas as pd import numpy as np import re
# 2. Import data (csv as example)
df = pd.read_csv("")
# 3. Check dataset size
df.shape df.head() df.duplicated()
# 4. Drop unnecessary data
# 4-1 drop duplicate rows df.drop_duplicates(inplace=True) # 4-2 drop unnecessary rows to_drop = ['column1','column2']) df.drop(to_drop, inplace=True, axis=1)
# 5. Assign new columns name, index
# 5-1 Assign new columns name from another csv d_new = pd.read_csv("") d_new = header.set_index('Name').to_dict() df.columns = df.columns.to_series().map(d['Label']) # 5-2 Assign new columns name from python dictionary d_new= {"old":"new"} df_df.rename(columns=d_new, inplace=True) # 5-3 Assign column as new index df["column"].is_unique df.set.index("column",inplace=True)
# 6. Clean the data format
# 6-1 Clean data through regex df["columns"].apply(lambda x : (re.search(r"pattern", x)).group()) # 6-2 Clean data through checking boolean values df["columns"] = np.where(df["columns"] == "A","X","Y" ) # 6-3 Convert the column to correct types df = df.astype({"columns1":"float64","columns2":"strings"})
# 7. Calculate statistical data for further plotting
# 7. Calculate statistical info. df.groupby("columns").agg(["mean","median"]) df.sort_values(by=["columns1","columns2"],ascending=False).head() df["columns3"].value_counts()
# 8. Plotting
# 8-1 Import libraries import seaborn as sns import matplotlib.pyplot as plt # set plot style sns.set_style('ticks') # create boxplot plt.figure(figsize=(10,15)) sns.boxplot(x="column1",y="column2",data=df) plt.title("Title of the plot") plt.show()
课外参考资料包括:
Pythonic Data Cleaning With Pandas and NumPy – Real Python
亦参考了马特市另一位居民@为自己Coding的Regex 详细教学,获益良多。
统计知识补充中
虽然之前在Coursera上旁听了Data Science Math Skills这个课程,但还是感觉自己的统计方面知识还很不足。在同学的推荐下,现在每天完成几段StatQuest with Josh Starmer - YouTube的统计有关影片,这个系列的影片例子讲解挺详尽,节奏亦很好,可以一边听一边记笔记。下一步是将这部分的知识应用到实际分析中。只有多练习,实际运用过,才不会忘记这些知识。
新一周目标(Week 24)
- 完成Python Numpy Exercise (剩下部分)
- 完成Web-scraping Project
- Google Capstone Project (in R)完成R coding 部分(之前的未完成任务)
(有时间的话,同一份用Python 再做一次。)
题外话
- 以前习惯开蓍Spotify播着Lo-Fi Beats 学习,最近喜欢上开蓍Twitch ,播着实况主玩AmongUs 讨论声音做练习。然后其实都没在听AmongUs 的内容。
- 这次我提早一天,把本篇的大概勾画出来,所以没像上周一样,完成记录就累到崩溃(吗?)
- 我很喜欢这位 Visual Artist ,以前用过她其中一张作品作为素材,在一份我个人很满意的(算是)设计上。啊,我好像要多学习一点Photoshop , Figma (已经收藏了好几份教学)。
- 最近算是「重操旧业」,翻译了一些网友评论,「重操旧业」这件事本身很有趣,但是实际上没什么意义。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 来自作者
- 相关推荐