引言
在數據分析範疇,Pandas DataFrame 是一個極端重要的東西。它供給了富強的數據處理才能,使得數據科學家跟分析師可能高效地處理跟分析數據。本文將深刻探究 Pandas DataFrame 的核心不雅點、常用操縱以及在現實數據分析中的利用。
Pandas DataFrame 簡介
Pandas DataFrame 是一個二維的、大小可變的、異質型表格數據構造,帶有標籤化的軸(行跟列)。它類似於 Excel 表格或 SQL 數據表,是 Pandas 庫中最常用的數據構造。
創建 DataFrame
DataFrame 可能經由過程多種方法創建,以下是一些罕見的方法:
- 利用字典創建:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']
}
df = pd.DataFrame(data)
- 利用列表的列表創建:
data = [['Alice', 25, 'F'], ['Bob', 32, 'M'], ['Charlie', 18, 'M'], ['David', 47, 'M']]
df = pd.DataFrame(data, columns=['name', 'age', 'gender'])
DataFrame 的屬性
shape
: 前去 DataFrame 的行數跟列數。dtypes
: 前去每列的數據範例。columns
: 前去 DataFrame 的列名。index
: 前去 DataFrame 的索引。
常用操縱
數據抉擇
loc
跟iloc
: 經由過程標籤或整數索引抉擇行跟列。iloc
: 經由過程整數地位抉擇行跟列。loc
: 經由過程標籤抉擇行跟列。
# 利用 loc 抉擇數據
df.loc['Alice', 'age']
# 利用 iloc 抉擇數據
df.iloc[0, 1]
數據清洗
dropna()
: 刪除包含缺掉值的行或列。fillna()
: 填充缺掉值。
# 刪除包含缺掉值的行
df.dropna()
# 填充缺掉值
df.fillna(0)
數據轉換
apply()
: 利用函數到 DataFrame 的每一列。map()
: 將值映射到另一個值。
# 利用函數到每一列
df.apply(lambda x: x.max())
# 將值映射到另一個值
df['age'] = df['age'].map({25: 'Young', 32: 'Adult', 18: 'Young', 47: 'Senior'})
數據分析
groupby()
: 對數據停止分組。pivot_table()
: 創建透視表。
# 對數據停止分組
df.groupby('gender').mean()
# 創建透視表
df.pivot_table(values='age', index='gender', columns='name')
現實利用
數據可視化
Pandas 與 Matplotlib 或 Seaborn 等庫結合,可能輕鬆停止數據可視化。
import matplotlib.pyplot as plt
df.plot(kind='bar')
plt.show()
量化買賣
Pandas 在量化買賣中也非常有效,可能用於讀取跟處理股票數據。
import pandas_datareader.data as web
data = web.DataReader('AAPL', 'yahoo', start='2020-01-01', end='2020-12-31')
data['MA50'] = data['Close'].rolling(window=50).mean()
data.plot()
plt.show()
總結
Pandas DataFrame 是數據分析中弗成或缺的東西。經由過程控制其核心不雅點跟常用操縱,可能輕鬆應對數據分析挑釁。盼望本文能幫助妳更好地懂得跟利用 Pandas DataFrame。