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

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

想用一個完整的案例講解Python數據分析的整個流程和基礎知識,實際上以一個數據集爲例,數據集是天池上的一個短租數據集,後臺回覆:短租數據集,便可得到。windows

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

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和datespa


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

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

  • 斜槓「 / 」:不須要加r,所有用 / 來寫:"D:/我的/data/reviews.xlsx"
    兩種方式看我的習慣吧。excel

sheet_name 參數

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

# 指定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

結果:image.png

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

指定編碼格式

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


能夠用encoding參數來設置編碼格式,Python默認的編碼格式是utf-8。image.png


中文亂碼問題

對於文件路徑中由於出現中文而致使的亂碼問題,能夠加入參數engine來避免。

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

結果:image.png

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參數

# 指定導入一、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()

結果:image.png

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

結果:

圖片寫在後面

相關文章
相關標籤/搜索