程式人生
資料是有組織格式的,還是無組織格式的?
每一行代表什麼?
每一列代表什麼?
是否有缺失值?
是否需要對某些列進行資料轉換?
匯入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 目的是指挑戰或一系列你的大資料戰略所定義的挑戰。...