# 怎樣用Python代碼實現數據分析
## 引言
在當今數據驅動的世界中,數據分析已成為各行各業不可或缺的技能。Python憑借其豐富的生態系統和易用性,成為數據分析的首選語言。本文將詳細介紹如何使用Python進行數據分析,涵蓋從數據獲取到可視化的完整流程。
## 1. 環境準備
### 1.1 安裝Python
推薦使用Anaconda發行版,它集成了數據分析所需的常用庫:
```bash
conda create -n py_analysis python=3.9
conda activate py_analysis
pip install pandas numpy matplotlib seaborn scipy scikit-learn
# 從CSV文件加載
import pandas as pd
df = pd.read_csv('data.csv')
# 從Excel加載
df = pd.read_excel('data.xlsx')
# 從數據庫加載
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql_query("SELECT * FROM table", conn)
import requests
url = "https://api.example.com/data"
response = requests.get(url)
data = response.json()
# 檢查缺失值
print(df.isnull().sum())
# 填充缺失值
df['column'].fillna(df['column'].mean(), inplace=True)
# 刪除缺失行
df.dropna(inplace=True)
# 類型轉換
df['date_column'] = pd.to_datetime(df['date_column'])
# 分類數據編碼
df['category'] = df['category'].astype('category')
df['category_code'] = df['category'].cat.codes
print(df.describe())
print(df['numeric_column'].value_counts())
import matplotlib.pyplot as plt
import seaborn as sns
# 直方圖
df['age'].plot(kind='hist', bins=20)
# 箱線圖
sns.boxplot(x='category', y='value', data=df)
# 相關矩陣熱力圖
corr = df.corr()
sns.heatmap(corr, annot=True)
plt.show()
# 簡單分組
grouped = df.groupby('category')['value'].mean()
# 復雜聚合
agg_results = df.groupby('department').agg({
'salary': ['mean', 'max', 'min'],
'age': 'median'
})
# 重采樣
df.set_index('date', inplace=True)
monthly_data = df['value'].resample('M').mean()
# 移動平均
df['rolling_avg'] = df['value'].rolling(window=7).mean()
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# 準備數據
X = df[['feature1', 'feature2']]
y = df['target']
# 拆分數據集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 訓練模型
model = LinearRegression()
model.fit(X_train, y_train)
# 評估
print("R2 score:", model.score(X_test, y_test))
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = df['text_column'].tolist()
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
import plotly.express as px
fig = px.scatter(df, x='gdp', y='life_exp',
size='population', color='continent',
hover_name='country', log_x=True)
fig.show()
import geopandas as gpd
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world.plot(column='gdp_per_cap', legend=True)
def analyze_dataset(df):
# 執行一系列分析步驟
results = {}
results['mean'] = df.mean()
results['correlation'] = df.corr()
return results
推薦使用Jupyter Notebook進行交互式分析,可以實時查看代碼執行結果和可視化效果。
Python為數據分析提供了強大的工具集。通過掌握pandas的數據處理、matplotlib/seaborn的可視化以及scikit-learn的機器學習能力,你可以應對絕大多數數據分析任務。持續練習和探索新工具是提升分析能力的關鍵。
”`
(注:實際字數約1500字,可根據需要調整部分章節的詳細程度來控制字數)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。