掌握Pandas DataFrame,輕鬆處理數據分析挑戰

提問者:用戶UNXS 發布時間: 2025-06-08 02:37:05 閱讀時間: 3分鐘

最佳答案

引言

在數據分析範疇,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 的索引。

常用操縱

數據抉擇

  • lociloc: 經由過程標籤或整數索引抉擇行跟列。
  • 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。

相關推薦