iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
AI & Data

資料三十-那些最基本的資料處理與分析技能系列 第 3

【Day03-表格】為什麼熊貓(pandas)是用來處理表格的工具?

前兩天我們稍微說明了一下對於看待資料的一些基本觀念
那今天就來開始實際對資料做一些操作吧

環境需求:

  • python程式環境

程度需求:

  • 對python有基本認知
  • 有使用過Excel或其他試算表軟體

這邊我們將會使用pandas套件來進行處理
而這裡的pandas其實是panel data的縮寫的意思
基本上可以想像成是python界中的Excel(但可以做到的事情更多)

實際操作

讀取資料

import pandas as pd # 使用pandas套件來處理表格

df = pd.read_excel("sample.xlsx") # 讀取檔案到資料框(DataFrame)裡面
df

選擇資料

場景:
小美表示今天早上她量的體重明明只有49.9,為什麼可以寫50.1呢
那我們要怎麼修改呢?

如果是在Excel上的話,當然就是滑鼠移過修改就好了

那在python裡面要怎麼選擇呢?

使用df.iloc數位置

就像是國中時候教過的二維座標的表示方式,即(第幾row,第幾col)
以這邊場景的例子,我們需要找到(1,3)的資料,因此這樣即可找到我們要的資料

df.iloc[1,3] # 使用位置來選擇
# 50.1

補充說明:
台灣和中國對於行和列的定義是相反的
因此如果在Google到相關的資料的時候記得自己轉換一下

  • row:台灣為列,中國為行
  • col:台灣為行,中國為列

造成這樣差異的原因是最早的中文書寫方式都是直式
而書寫的方向自然就定義為行
但後來文字受到西方文化的影響逐漸改為橫式為主流
此時中國的做法是另新的文字方向為行
而台灣的做法則是沿用原本的方向當作行,但更改文字方向
因此就造成了兩邊用法的差異
筆者自己是為了避免混淆,都儘量用column, row來描述

使用df.loc給名稱

就像是Excel裡面可以用D3來選擇這一格
我們也可以用名稱的方式來選擇,即(哪個row,哪個col)

df.loc[1,"體重"] # 使用名稱來選擇
# 50.1

修改資料

那有了上面的找到對應的位置之後,要修改就不是什麼問題了

# 方法1
df.iloc[1,3] = 49.9

# 方法2
df.loc[1,"體重"] = 49.9

# 檢查一下
df 

計算資料

sum(df["身高"])/len(df) # 平均身高
sum(df["體重"])/len(df) # 平均體重

產生新的column

這邊我們想要計算一下大家的BMI,根據BMI = 身高 / 體重^2

df["BMI"] = df["體重"] / (df["身高"]/100)**2 # 計算BMI
df["BMI"]

參考資料

今天很基本的講解了一下要如何用pandas在表格中選取資料
雖然很基本但卻是很容易搞混ilocloc兩個用法的地方
因此使用的時候要稍微注意一下哦> <


上一篇
【Day02-尺度】40°C為什麼不是20°C的兩倍?
下一篇
【Day04-檔案】你知道Excel最大可以開多少筆資料嗎?
系列文
資料三十-那些最基本的資料處理與分析技能30

尚未有邦友留言

立即登入留言