本文主要介紹如何使用pandas
來查看、新增、修改資料。
[Python ]pandas讀取寫入CSV 與Excel文件
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()
選取單列資料顯示。
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()