Pandas引言(一)

DataFrame基本操作

使用pandas讀取CSV

import pandas as pd

df = pd.read_csv('food_info.csv')
df.head(5)

df 即 pandas 的 DataFrame 對象,在Jupyter中的運行結果如下:
在這裏插入圖片描述

DataFrame的常用操作

查看DataFrame的shape:
在這裏插入圖片描述
獲取表中所有數值類型的常用統計指標:
在這裏插入圖片描述

DataFrame的列索引

在這裏插入圖片描述
還可以獲取將列索引轉化爲 list
在這裏插入圖片描述
列索引對象可迭代:遍歷列索引對象,獲取所有以 g 爲單位的食材

gram_food = []
for c in df.columns:
    if c.endswith("(g)"):
        gram_food.append(c)
        
df[gram_food].head()

運行結果:
在這裏插入圖片描述

DataFrame列的運算

將 Protein_(g) 列的所有值乘以2:
在這裏插入圖片描述
將 Lipid_Tot_(g) 列的所有值乘以0.75:
在這裏插入圖片描述
向DataFrame中添加一個新的列 initial_rating :

df["initial_rating"] = (df["Protein_(g)"] * 2) + (df["Lipid_Tot_(g)"] * 0.75)
df.loc[:2][["Protein_(g)", "Lipid_Tot_(g)", "initial_rating"]]

運行結果:
在這裏插入圖片描述
看看新增加列對的最大值:
在這裏插入圖片描述

DataFrame關於行的操作

使用切片操作,選取特定的行:
在這裏插入圖片描述
在這裏插入圖片描述
使用 df[start: stop: step] 而不是 df.loc[start: stop: step] 時,將不包含stop行:
在這裏插入圖片描述
在這裏插入圖片描述
推薦在選取指定行時,使用 loc 的形式。如果是使用列表選取指定行時,必須添加loc,否則會報錯:
在這裏插入圖片描述

DataFrame排序操作

依據某一列的值進行排序:

# inplace=True對DataFrame就地修改,而不是返回一個新的DataFrame
df.sort_values("initial_rating", inplace=True)
df[["Protein_(g)", "Lipid_Tot_(g)", "initial_rating"]].tail(3)

在這裏插入圖片描述
上述示例爲升序排列,下面我們指定爲降序:

df.sort_values("initial_rating", inplace=True, ascending=False)
df[["Protein_(g)", "Lipid_Tot_(g)", "initial_rating"]].head(3)

在這裏插入圖片描述
inplace參數的默認值爲 False ,即返回一個已排序的新的DataFrame,原DataFrame不會發生改變。使用sort_index()可以根據索引重新排序 DataFrame,同理,也可以指定 inplace 參數,表示是否就地修改:
在這裏插入圖片描述

方法總結

DataFrame的操作

方法 說明
df = pandas.read_csv(‘csv文件’) 讀取CSV文件爲Pandas的DataFrame對象
df.head(n) 返回DataFrame的頭n行數據
df.columns 返回列名組成的Index對象
df.shape 返回DataFrame的形狀(row * colus)
df.describe() 以DataFrame的形式返回各數值列的統計信息

DataFrame行的操作

方法 說明
df.loc[n] 第n+1行記錄以Series形式返回
df.loc[start: stop: step] 使用切片選取DataFrame的部分記錄,包含stop
df[start: stop: step] 使用切片選取DataFrame的部分記錄,不包含stop
df.loc[[num1, num2, num3]] 使用列表選取DataFrame的部分記錄

DataFrame列的操作

方法 說明
df[‘列名’] 獲取DataFrame的某一列,類型爲Series
df[‘列名’].name 獲取當前列的列名
df[‘列名’].dtype 獲取當前列的數據類型
df[[‘列名1’,‘列名2’,…]] 使用列表的形式選取指定的列
df.columns.tolist() 將列名以列表形式返回
df[‘新列名’] = Series對象 在DataFrame中增加一列
df[‘列名’].max() 求該列的最大值

指定列爲依據進行排序

方法 說明
df**.sort_values(**by, axis=0, ascending=True, inplace=False) 返回一個排序後的DataFrame,默認爲升序
df.sort_values(by, axis=0, ascending=False, inplace=True) 就地降序排列,原DataFrame的順序將被改變
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章