Python數據分析實戰:獲取數據

這是 利用Excel學習Python 系列的第8篇文章

想用一個完整的案例講解Python數據分析的整個流程和基礎知識,實際上以一個數據集爲例,數據集是天池上的一個短租數據集。

先來想一下數據分析的流程,第一步獲取數據,因此本節內容就是獲取數據以及對數據的基本操作。

1.數據導入

1.1 導入.xlsx文件

要導入一個.xlsx後綴的Excel文件,可以使用pd.read_excel(路徑)方法

# 導入.xlsx文件
df_review = pd.read_excel(r"D:\個人\data\reviews.xlsx")
df_review

結果:


df_review數據包含了兩個字段,listing_id和date

 

讀入數據時必不可少的參數就是路徑,不同的操作系統下文件路徑的寫法也不同,通常windows操作系統下關於路徑有兩種寫法:

  • 反斜槓“ \ ”:右鍵點擊這個文件,選擇屬性,可以看到它所在的位置,默認是使用 \ 來表示,由於反斜槓“\”在Python中被定義爲轉義符號,因此在寫的時候就要在路徑的最前方加一個轉義符 r,r"D:\個人\data\reviews.xlsx"

  • 斜槓“ / ”:不需要加r,全部用 / 來寫:"D:/個人/data/reviews.xlsx"
    兩種方式看個人習慣吧。

sheet_name 參數

對於.xlsx文件來說,可能會存在多個sheet表,因此也可以設置sheet_name參數指定導入的sheet表,可以傳入sheet表的名字,也可以按照從0遞增的順序來指定,不指定sheet表則默認第一個sheet.

# 指定Sheet表
df_review = pd.read_excel(r"D:\個人\data\reviews.xlsx",sheet_name = 0) # 指定名字或順序
df_review

1.2 導入.csv文件

導入.csv格式的文件使用pd.read_csv(路徑)的方法

# 導入csv文件
df_list = pd.read_csv(r"D:\個人\data\listings.csv")
df_list

結果:

df_list數據主要包括:房東ID、房東姓名、經緯度、房間類型、價格、最小可租天數、評論數量、最後一次評論時間、每月評論佔比、可出租房屋、每年可出租時長等字段

指定編碼格式

對於.csv文件有個重要的知識點,就是編碼格式,尤其是在導入文件的時候,需要了解文件的編碼格式,以免出現亂碼,那麼如何知道文件是什麼類型的編碼呢?用notepad++軟件打開,右下角會顯示該文件的編碼格式,如剛剛導入的listings.csv文件,是utf-8編碼,在書寫編碼時,大小寫通用,且utf-8也可以寫成utf8.


可以用encoding參數來設置編碼格式,Python默認的編碼格式是utf-8。

 

中文亂碼問題

對於文件路徑中因爲出現中文而導致的亂碼問題,可以加入參數engine來避免。

# 避免出現亂碼
df_list = pd.read_csv(r"D:\個人\data\listings.csv",engine = "python")
df_list

結果:

image.png

指定行索引

不指定行索引的話,從0開始遞增的一列作爲行索引,也可以指定id一列爲行索引,傳入參數index_col

# 指定行索引
df_list = pd.read_csv(r"D:\個人\data\listings.csv",index_col = "id")
df_list.head()

結果:可以看到,id列成了行索引列。

指定列索引

默認第一行是列索引,也可以指定,使用header參數,header = 0,表示指定第一行爲列索引。

# 指定列索引
df_list = pd.read_csv(r"D:\個人\data\listings.csv",header = 0)
df_list.head()

結果:

指定導入列

有時候我們希望只導入指定的列即可,那麼就傳入usecols參數

# 指定導入1、4列
df_list = pd.read_csv(r"D:\個人\data\listings.csv",usecols = [0,3])
df_list.head()

結果:

2.對數據的基本操作

導入數據後,需要對數據進行一個大概的瞭解,比如數據集有幾行幾列,每個字段的數據類型是什麼,有無空值等。

預覽

不必完全跑出數據,只需看下前幾行,用head方法,得到的是前5行數據

# 預覽數據
df_list = pd.read_csv(r"D:\個人\data\listings.csv")
df_list.head()

結果:

head()裏也可傳入數字,如預覽前10行數據

# 預覽數據
df_list = pd.read_csv(r"D:\個人\data\listings.csv")
df_list.head(10)

查看數據維度

數據集有幾行幾列,用shape

# 查看數據集維度
df_list.shape

結果:可以看到df_list數據集有28452行,16列

查看數據類型

使用dtypes可以查看數據集所有字段的數據類型

# 數據類型
df_list.dtypes

結果:


也可以單獨查看某一個字段的數據類型

 

# 單獨查看某個字段的數據類型
df_list["host_id"].dtypes

結果:

寫在後面

加油!


猜你喜歡
爲什麼要學統計學:赤裸裸的統計學

Python數據結構:神奇的序列

成爲數據分析師的第三年,我寫了10W字

高手都是怎樣用圖表的:用圖表說話

簡單的Excel數據分析案例

@ 作者:可樂
@ 公衆號/知乎專欄/頭條/簡書:可樂的數據分析之路
@ 加微信(data_cola)備註:進羣,拉你進可樂的數據分析交流羣,數據分析知識總結,不定期行業經驗分享

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章