Pandas 教程——篩選讓你動心的電影(2)

上一節對 Pandas 整體有了一個簡單的認識,接下來我們看一下 Pandas 的數據結構到底是什麼,先使用 type( ) 查看一下變數類型

import pandas as pdmovie_pd = pd.read_csv(douban_movie.csv, header = 0, sep = )print type(movie_pd)

輸出結果如下:

<class pandas.core.frame.DataFrame>

可見,Pandas 的基本數據結構是 DataFrame, 怎麼理解這個 DataFrame 呢?

其實 DataFrame 類似於 Excel 中的表,表有行標題和列標題,比如下面這個表:

對應的 DataFrame 就是:

movie_count total_vote average_scoreBJ 126 1762312 8.6SH 138 2083123 8.3TJ 95 891212 7.9CQ 88 762310 8.1

是不是很像,在 Pandas 中,列名相當於列標題 movie_count、total_vote、average_score,而行標題 BJ、SH、TJ、CQ 就相當於索引

那麼如何創建一個新的 DataFrame 呢?使用 pd.DataFrame( ) 方法即可,具體有兩種方式:

  • 按列創建

比如說創建一個只有 電影類型 category 和 電影評分 score 兩列的 DataFrame,直接扔進去一個字典,字典的鍵將作為列名,對應鍵的值將作為列值。

temp_dict = { score: [ 8.9, 8.2, 9.3 ], category: [懸疑, 動作, 愛情] }temp_pd = pd.DataFrame(temp_dict)print temp_pd

輸出結果如下:

category score0 懸疑 8.91 動作 8.2 2 愛情 9.3

  • 按行創建

上述 DataFrame 也可以使用按行創建的思路生成,但實際中使用的並不多,創建時需要傳入一個列表進去。

row1 = [8.9, 懸疑 ]row2 = [8.2, 動作]row3 = [9.3, 愛情 ]temp_pd = pd.DataFrame([ row1, row2, row3 ], columns = [score, category])

不同的是,按行創建一般需要指定列名,使用 columns = [score, category] 來分別對列重命名,否則默認的列名是以數字命 0、1 命名的,使用起來並不直觀。

新創建的 DataFrame,或者從文件讀入的 DataFrame,默認的索引都是從 0 ~ N-1 的數字,其中 N 為 DataFrame 的長度,可以使用 len( ) 來獲取。

print len(temp_pd)print temp_pd.indextemp_pd.index = [movie_1, movie_2, movie_3]print temp_pd.columnstemp_pd.columns = [movie_score, movie_category]print temp_pdprint temp_pd.values

數據結果如下:

3RangeIndex(start=0, stop=3, step=1)Index([ucategory, uscore], dtype=object) movie_score movie_categorymovie_1 懸疑 8.9movie_2 動作 8.2movie_3 愛情 9.3[[xe6x82xacxe7x96x91 8.9] [xe5x8axa8xe4xbdx9c 8.2] [xe7x88xb1xe6x83x85 9.3]]

index 可以獲取 DataFrame 的索引,更改之前是 0、1、2,之後變為了movie_1、movie_2 、movie_3 。

columns 可以獲取 DataFrame 的列名,更改之前是 score 、category,之後變為了movie_score、movie_category。

values 則可以獲取 DataFrame 的值,每一行各個列的值都是一個列表,所有的行整體又組成一個列表,有點類似於二維數組。

同時也可以通過賦值的方式更改 DataFrame 的索引 index、列名 columns

劃重點

  • DataFrame 類似於 Excel 中的表,有行和列
  • index 索引、columns 列名 、values 值
  • pd.DataFrame( ) 創建一個新的 DataFrame,可以傳入字典或列表

下一節:Pandas 教程——篩選讓你動心的電影(3)

上一節:Pandas 教程——篩選讓你動心的電影(1)

推薦閱讀:

Python 有哪些好的學習資料或者博客?
Python進階課程筆記(二)
Python的大數運算到底是根據什麼基礎原理或者演算法實現的?
如何訓練自己的編程思路
有了danmu,二十行代碼輕鬆愉快對彈幕進行二次開發

TAG:Python | 数据 | 数据分析 |