本文主要介紹如何使用pandas
來查看、新增、修改資料。
[Python ]pandas讀取寫入CSV 與Excel文件
[Python ]資料分析工具pandas基礎介紹本文將使用kaggle平台上的數據資料來實作說明。
基本操作
查看資料
df.head()
:顯示前5行數據。df.tail()
:顯示後5行數據。df.info()
:顯示數據的完整資訊。df.describe()
:統計描述數據。
選取資料
- 單列選取:
df['Name']
- 多列選取:
df[['Name', 'Age']]
- 條件選取:
df[df['Age'] > 25]
修改資料
新增列
df['NewColumn'] = [1, 2, 3, 4]
修改值
df.at[0, 'Name'] = 'Alicia'
刪除列
df.drop('NewColumn', axis=1, inplace=True)
程式範例
第一步先讀取資料,上Kaggle下載數據集,但先去創辦會員才可以下載喔。

讀取數據集並查看
df.info()
:
提供了一個簡潔而全面的數據介面,讓你能夠快速了解數據集的結構和狀況,有多少筆資料,缺失值有多少,欄位有幾個,是什麼型別。
import pandas as pd
df = pd.read_csv('F:/python/crab/pandas/MentalHealthSurvey.csv')
df.info()
顯示行索引的範圍(如 RangeIndex: 0 to 86, 87 entries
),表示 DataFrame 共有多少行。有多少筆數據。

<class 'pandas.core.frame.DataFrame'>
: 表示這是一個 DataFrame。RangeIndex: 87 entries, 0 to 86
: 表示 DataFrame 有 87 行,行索引範圍從 0 到 86。Data columns (total 21 columns):
: 表示 DataFrame 有 3 列。#
: 列的順序編號。Column
: 列名。Non-Null Count
: 每列中非空(非NaN
)數值的數量。Dtype
: 每列的數據類型,object
表示字符串,int64
表示正整數。dtypes: int64(10), object(11)
: 表示 DataFrame 中有 10 列是int64
類型,有 11 列是object
類型。memory usage: 14.4+ KB
: 表示這個 DataFrame 佔用了大約14.4+
K的內存
讀取統計資料
df.describe()
:
特別適合快速查看數據的整體概況,尤其是針對數值型欄位,但如果 DataFrame 中有非數值型的欄位,這些欄位不會被列入統計。
df.describe()

- Count(計數):每個欄位中非缺失值(非 NaN)的數量。
- Mean(平均值):每個欄位的平均值。
- Std(標準差):標準差,用來衡量數據的分散程度。
- Min(最小值):每個欄位的最小值。
- 25%(第一四分位數):數據中的 25% 分位值。
- 50%(中位數或第二四分位數):數據的中位數,也稱作 50% 分位值。
- 75%(第三四分位數):數據中的 75% 分位值。
- Max(最大值):每個欄位的最大值。
選取資料
選取單列資料顯示。
df['gender']
印出gender這列資料顯示

新增資料
df
中的行數必須與 new_data
的長度一致。如果 DataFrame 的行數與新欄位的資料數量不符,會引發錯誤。
new_data = list(range(1, 88)) # 生成從 1 到 87 的數字
df['NewColumn'] = new_data
df.info()
這樣就新增NewColumn
這個欄位的資料了。

修改值
只更新單一索引位子的值
print(df['NewColumn'][0])
df.at[0, 'NewColumn'] = 2 # 修改單一值
df['NewColumn'][0]

整個更新
直接重新指定就能替換掉整行數據囉,但要注意長度要一致。
new_data = list(range(2, 89)) # 生成從 2 到 88的數字
df['NewColumn'] = new_data
部分資料進行更新
可以用切片的方式來進行部分資料更新。
df['ExistingColumn'][:3] = [87,87,87]
df['NewColumn'].head() #印出前5行

刪除列
df.drop('NewColumn', axis=1, inplace=True)
:
'NewColumn'
: 這是你想要刪除的欄位名稱。axis=1
:axis
參數指定了要刪除的是欄位(column)還是列(row)。axis=1
表示操作的是欄位;如果是axis=0
,則表示操作的是列。inplace=True
: 表示直接在原 DataFrame 上進行修改,而不會返回新 DataFrame。如果設為False
(預設值),會返回一個刪除指定欄位後的新 DataFrame,而原 DataFrame 保持不變。
範例
df.drop('NewColumn', axis=1, inplace=True)
df.info()
