送書丨資料科學入門的5個技巧

2021-08-28 03:55:32 字數 4034 閱讀 3322

程式人生

資料是有組織格式的,還是無組織格式的?

每一行代表什麼?

每一列代表什麼?

是否有缺失值?

是否需要對某些列進行資料轉換?

匯入pandas包,並縮寫為pd。

讀取檔案yelp.csv,並命名為yelp_raw_data。

檢視資料的表頭(僅前幾行),如圖3.1所示。

:資料是有組織格式的,還是無組織格式的?

資料來源是非常好的行列結構,我們可以認為它是有組織格式的。

:每一行代表什麼?

很明顯,每一行代表一條使用者的評價。我們還會檢視每一行和每一列的資料型別。我們使用dataframe的shape方法檢視資料集的大小,如下所示。

結果顯示,資料集有10 000行和10列。換言之,資料集有10 000個觀測值和10個觀測特徵。

business_id:本列看起來是每條評價對應的交易的唯一識別碼。本列是定類尺度,因為識別碼沒有天然的順序。

date:本列是每條評價的提交日期。請注意,它只精確到了年、月和日。雖然時間通常被認為是連續資料,但本列應該被視為離散資料。本列屬於定序尺度,因為日期有天然的順序。

review_id: 本列看起來是每條評價的唯一識別碼。本列同樣屬於定類尺度,因為識別碼沒有天然的順序。

stars:本列看起來(別擔心,我們隨後會對它進行深入的分析)是評價者給每乙個餐館的最終評分。本列是有次序的定性資料,因此屬於定序尺度。

text:本列看起來是使用者撰寫的評價。對於大部分文字資料,我們將其歸為定類尺度。

type:本列前5行均為「review」,我們猜測它是標記每行是否為「review」的列,也就是說很可能存在不是「review」的行。我們隨後將進行更深入的分析。本列屬於定類尺度。

user_id:本列是每個提交評價的使用者的唯一識別碼。和其他唯一識別碼一

樣,本列也屬於定類尺度。

問題4:是否有缺失值?

● 使用isnull方法判斷是否有缺失值。

比如,對於名為awesome_dataframe的dataframe資料集,使用python**awesome_dataframe.isnull().sum()可顯示每一列的缺失值總數。

我們想知道是否需要改變定量資料的數值範圍,或者是否需要為定性資料建立啞變數?由於本資料集只有定性資料,所以我們將焦點放在定序和定類範圍。

dataframe

type(yelp_raw_data)

# pandas.core.frame.dataframe

series

yelp_raw_data['business_id']# grab a single column of the dataframe

0           9ykzy9papeippoujetnvkg

1           zrjwvlyzejq1vaihdhyiow

2           6orac4uyjcsjl1x0wzpvsa

3           _1qqzuf4zzoyfcvxc0o6vg

4           6ozycu1rpktng2-1brovtw

5           -yxfbygb6seqszmxjxd97a

6           zp713qnhx8d9kcjjnrw1xa

type(yelp_raw_data['business_id'])

# pandas.core.series.series

定性資料的探索技巧

yelp_raw_data['business_id'].describe()

# count                              10000

# unique                              4174

# top                jokktdxu7zxhcr20lrk29a

# freq                                      37

count:該列含有多少個值。

unique:該列含有多少個非重複值。

top:該列出現次數最多的值。

freq:該列出現次數最多的值的次數。

非重複項的個數是否合理(通常小於20個)?

該列是自由文字嗎?

該列所有的行都不重複嗎?

yelp_raw_data['review_id'].describe()

# count                             10000

# unique                           10000

# tope            ta5kd-ltgqv6ut1zmijmw

# freq                                       1

(插入《jeopardy》的主題曲。)

yelp_raw_data['text'].describe()

count                          10000

unique                          9998

top      this review is for the chain in general. 

freq                                   2

pandas中的篩選

真:該行滿足條件;

假:該行不滿足條件。

duplicate_text = yelp_raw_data['text'].describe()['top']

"this review is for the chain in general. 

the location we went to isnew so it isn't in yelp yet. 

once it is i will put this review thereas well……."

text_is_the_duplicate = yelp_raw_data['text'] == duplicate_text

type(text_is_the_duplicate) # it is a series of trues and falses

text_is_the_duplicate.head() # shows a few falses out of the series

sum(text_is_the_duplicate) # == 2

filtered_dataframe = yelp_raw_data[text_is_the_duplicate]

# the filtered dataframe

filtered_dataframe

yelp_raw_data['type'].describe()

count        10000

unique             1

top          review

freq          10000

yelp_raw_data['user_id'].describe()

count                          10000

unique                          6403

top       fczqcsmawf78tolemb0zsw

freq                                  38

《深入淺出資料科學》

[美] 斯楠·奧茲德公尺爾(sinan ozdemir)

著本書可以幫助讀者把數學、程式設計和商業分析聯絡起來。通過學習這本書,讀者有信心**和解答複雜的資料科學問題,從抽象的原始的統計,發掘出切實可行的觀點和想法。本書適合缺乏數學知識的程式設計人員,或者是擁有數學技能、想投身資料科學領域的人士閱讀使用。

本期評獎規則

你希望這本書會帶給您什麼?為什麼?

vim入門 Vim入門的5個技巧

vim入門 多年以來,我一直想學習vim 現在是我首選的linux文字編輯器,並且是開發人員和系統管理員最喜歡的開源工具。當我說學習時,我的意思是真正學習。乙個字可能太強了,但我會精通高階語言。在使用linux的大多數年中,我的技能包括開啟檔案,使用箭頭鍵上下導航,切換到插入模式,更改某些文字,儲存...

開啟資料科學職業生涯的8個基本技巧

nick bostrom 譯者注 nick bostrom是牛津大學哲學系的教授,是人類未來研究院的創始人和主任。他的新書 superintelligence 超級智慧型 在出版後,包括伊隆 馬斯克 史蒂芬 霍金以及比爾 蓋茨等傑出的科技人士紛紛對其表示了支援,另外google也成立倫理委員會來監督...

資料科學中的五個重要方面(5 P s)

資料科學是關於如何從資料中提取知識。我們定義資料科學作為乙個交叉學科,集合了人,處理過程,計算和大資料平台,特定於應用程式的目的和可程式設計性。產生資料本身的 和方式同樣很重要,但我們首先定義五個p,資料科學活動中的重要組成部分。目的 purpose 目的是指挑戰或一系列你的大資料戰略所定義的挑戰。...