圖片來源:(https://forum.gamer.com.tw/Co.php?bsn=43473&sn=52635)
是一個二維標籤陣列,類似 Excel 試算表或 SQL 資料庫中的表格。由多個 Series 組成,每個 Series 代表一列,而每一列可以有不同的數據類型。DataFrame 是 Pandas 中最常用的數據結構,用於表示複雜的數據集
import pandas as pd
# 從字典創建
data = {'Column1': [1, 2, 3], 'Column2': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)
輸出
Column1 Column2
0 1 4
1 2 5
2 3 6
# 從列表的列表創建
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
print(df)
輸出
A B C
0 1 2 3
1 4 5 6
2 7 8 9
# 從 NumPy array 創建
import numpy as np
data = np.array([[1, 2, 3], [4, 5, 6]])
df = pd.DataFrame(data, columns=['X', 'Y', 'Z'])
print(df)
輸出
X Y Z
0 1 2 3
1 4 5 6
shape |
返回 DataFrame 形狀,即行數和列數。 |
---|---|
index |
返回 DataFrame 索引(行標籤) |
columns |
返回 DataFrame 列名 |
dtypes |
返回 DataFrame 中每一列數據類型 |
head() |
返回 DataFrame 前幾行 |
tail() |
返回 DataFrame 後幾行 |
describe() |
返回 DataFrame 描述性統計量 |
info() |
顯示 DataFrame 摘要信息 |
data = {'Column1': [1, 2, 3], 'Column2': [4, 5, 6]}
df = pd.DataFrame(data)
print(df.shape)
# 輸出
(3, 2)
print(df.index)
# 輸出
RangeIndex(start=0, stop=3, step=1)
print(df.columns)
# 輸出
Index(['Column1', 'Column2'], dtype='object')
print(df.dtypes)
# 輸出
Column1 int64
Column2 int64
dtype: object
print(df.head())
# 輸出
Column1 Column2
0 1 4
1 2 5
2 3 6
print(df.tail())
# 輸出
Column1 Column2
0 1 4
1 2 5
2 3 6
print(df.describe())
# 輸出
Column1 Column2
count 3.0 3.0
mean 2.0 5.0
std 1.0 1.0
min 1.0 4.0
25% 1.5 4.5
50% 2.0 5.0
75% 2.5 5.5
max 3.0 6.0
print(df.info())
# 輸出
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Column1 3 non-null int64
1 Column2 3 non-null int64
dtypes: int64(2)
memory usage: 176.0 bytes
None
選取列
:使用列名或索引號選取行
:使用行標籤或索引號切片
:使用 iloc 或 loc 方法進行切片布林索引
:使用布林表達式來篩選數據data = {'Column1': [1, 2, 3], 'Column2': [4, 5, 6]}
df = pd.DataFrame(data)
# 選取一列
print(df['Column1'])
輸出
0 1
1 2
2 3
Name: Column1, dtype: int64
# 選取多列
print(df[['Column1', 'Column2']])
輸出
Column1 Column2
0 1 4
1 2 5
2 3 6
# 選取前兩行
print(df.head(2))
輸出
Column1 Column2
0 1 4
1 2 5
# 選取索引為1到3的行
print(df.iloc[1:4])
輸出
Column1 Column2
1 2 5
2 3 6
# 篩選出 Column1 大於 2 的行
print(df[df['Column1'] > 2])
輸出
Column1 Column2
2 3 6
添加列 |
使用 ['new_column'] = values 的方式添加新列 |
---|---|
刪除列 |
使用 drop() 方法刪除列 |
重命名列 |
使用 rename() 方法重命名列 |
排序 |
使用 sort_values() 方法根據指定列進行排序 |
聚合 |
使用 groupby() 方法進行分組聚合 |
合併 |
使用 merge() 或 concat() 方法合併 DataFrame |
data = {'Column1': [1, 2, 3], 'NewColumn': [4, 5, 6]}
df = pd.DataFrame(data)
# 添加一列
df['NewColumn'] = df['Column1'] * 2
print(df)
輸出
Column1 NewColumn
0 1 2
1 2 4
2 3 6
# 刪除 Column1 列
df = df.drop('Column1', axis=1)
print(df)
輸出
NewColumn
0 4
1 5
2 6
# 重命名 Column2 為 NewName
data = {'Column1': [1, 2, 3], 'Column2': [4, 5, 6]}
df = pd.DataFrame(data)
df = df.rename(columns={'Column2': 'NewName'})
print(df)
輸出
Column1 NewName
0 1 4
1 2 5
2 3 6
# 根據 Column1 升序排序
df = df.sort_values('Column1')
print(df)
輸出
Column1 Column2
0 1 4
1 2 5
2 3 6
數據分析
:可以用各種數據分析任務,例如:數據清洗、探索性數據分析、統計分析機器學習
:可以作機器學習模型輸入數據資料庫操作
:可以與 SQL 資料庫進行交互Pandas DataFrame 是 Python 數據分析中非常重要的工具,它提供豐富的功能用於處理和分析表格型數據。通過 DataFrame,可以方便地對數據進行操作、分析和可視化