coletangsy
coletangsy

學習 Data Science、Machine Learning 中,透過記錄,一步一步往目標前進。

【学习记录| 本周总结】 Week 23 - 练习练习再练习、数据清洗

Numpy、Pandas 和现在,是时候进行数据清理了!

封面图片还是来自我很喜欢的Visual Artist @ evieshaffer


本周总结

  1. Python pandas exercises (完成)
  2. Python numpy exercises (进行中)
  3. 需要了解更多Web scraping, regex




内容及反思

Python exercises

按着上一周的计画,在写本篇前算是完成了整份Pandas exercises,说是「算是完成」,是因为练习的确做完,但我还没把重点单独整理出来。如果没有把重点整理出来,学习到的内容最后也很容易随着完成了的练习,被放到一边然后忘掉。所以明天得抽出时间,先暂停其他,把这项放到最优先的次序。

在完成Pandas 的练习后,我又在github上找了两套关于Numpy 的练习来做,分别是rougier/numpy-100Kyubyong/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

亦参考了马特市另一位居民@为自己CodingRegex 详细教学,获益良多。



统计知识补充中

虽然之前在Coursera上旁听了Data Science Math Skills这个课程,但还是感觉自己的统计方面知识还很不足。在同学的推荐下,现在每天完成几段StatQuest with Josh Starmer - YouTube的统计有关影片,这个系列的影片例子讲解挺详尽,节奏亦很好,可以一边听一边记笔记。下一步是将这部分的知识应用到实际分析中。只有多练习,实际运用过,才不会忘记这些知识。




新一周目标(Week 24)

  1. 完成Python Numpy Exercise (剩下部分)
  2. 完成Web-scraping Project
  3. Google Capstone Project (in R)完成R coding 部分(之前的未完成任务)
    (有时间的话,同一份用Python 再做一次。)




题外话

  1. 以前习惯开蓍Spotify播着Lo-Fi Beats 学习,最近喜欢上开蓍Twitch ,播着实况主玩AmongUs 讨论声音做练习。然后其实都没在听AmongUs 的内容。
  2. 这次我提早一天,把本篇的大概勾画出来,所以没像上周一样,完成记录就累到崩溃(吗?)
  3. 我很喜欢这位 Visual Artist ,以前用过她其中一张作品作为素材,在一份我个人很满意的(算是)设计上。啊,我好像要多学习一点PhotoshopFigma (已经收藏了好几份教学)。
  4. 最近算是「重操旧业」,翻译了一些网友评论,「重操旧业」这件事本身很有趣,但是实际上没什么意义。
CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…
加载中…

发布评论