這是 利用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
結果:
寫在後面
加油!
猜你喜歡:
爲什麼要學統計學:赤裸裸的統計學
@ 作者:可樂
@ 公衆號/知乎專欄/頭條/簡書:可樂的數據分析之路
@ 加微信(data_cola)備註:進羣,拉你進可樂的數據分析交流羣,數據分析知識總結,不定期行業經驗分享