Pandas 數(shù)據(jù)分析全攻略:從入門到精通!
Pandas 數(shù)據(jù)分析全攻略!
- 你是否遇到這些問題?
- 如何高效處理 Excel、CSV 數(shù)據(jù)?如何快速篩選、清洗、分析數(shù)據(jù)?
- 如何用 Python 進(jìn)行數(shù)據(jù)統(tǒng)計(jì)?
如果你想用 Python 進(jìn)行數(shù)據(jù)分析,Pandas 絕對(duì)是首選! 今天,我們來詳細(xì)講解 Pandas 的核心功能,助你成為數(shù)據(jù)分析高手!
什么是 Pandas?
Pandas 是 Python 最強(qiáng)大的數(shù)據(jù)分析庫,專門用于處理結(jié)構(gòu)化數(shù)據(jù)(如 Excel、CSV、數(shù)據(jù)庫等)。
核心數(shù)據(jù)結(jié)構(gòu):
- Series(一維數(shù)據(jù),如列表)
- DataFrame(二維數(shù)據(jù)表,如 Excel)
安裝 Pandas(如果你還沒安裝):
pip install pandas
導(dǎo)入 Pandas:
import pandas as pd
Series:一維數(shù)據(jù)結(jié)構(gòu)
Series 可以看作帶索引的列表,適用于存儲(chǔ)一列數(shù)據(jù)。
創(chuàng)建 Series:
import pandas as pd
data = pd.Series([10, 20, 30, 40])
print(data)
輸出:
0 10
1 20
2 30
3 40
dtype: int64
自動(dòng)生成索引(0,1,2,3),可以像列表一樣訪問數(shù)據(jù)!
自定義索引:
data = pd.Series([10, 20, 30, 40], index=["A", "B", "C", "D"])
print(data["B"]) # 訪問索引為 'B' 的值
輸出:
20
Series 適用于存儲(chǔ)單列數(shù)據(jù),如時(shí)間序列、股票價(jià)格等!
DataFrame:二維數(shù)據(jù)結(jié)構(gòu)(核心)
DataFrame 是 Pandas 最核心的數(shù)據(jù)結(jié)構(gòu),類似于 Excel 表格,可存儲(chǔ)多列數(shù)據(jù)。
創(chuàng)建 DataFrame:
data = {
"姓名": ["Alice", "Bob", "Charlie"],
"年齡": [25, 30, 35],
"城市": ["北京", "上海", "廣州"]
}
df = pd.DataFrame(data)
print(df)
輸出:
姓名 年齡 城市
0 Alice 25 北京
1 Bob 30 上海
2 Charlie 35 廣州
適用于處理 Excel、CSV、數(shù)據(jù)庫中的數(shù)據(jù)!
讀取 & 保存數(shù)據(jù)
Pandas 可直接讀取/保存 Excel、CSV、JSON 等格式的數(shù)據(jù)!
讀取 CSV 文件:
df = pd.read_csv("data.csv")
print(df.head()) # 查看前 5 行數(shù)據(jù)
保存為 Excel 文件:
df.to_excel("output.xlsx", index=False)
數(shù)據(jù)存取非常方便!
數(shù)據(jù)篩選 & 處理
訪問某列數(shù)據(jù):
print(df["姓名"]) # 訪問 "姓名" 列
篩選數(shù)據(jù)(條件篩選):
df_filtered = df[df["年齡"] > 25] # 篩選年齡大于 25 的人
print(df_filtered)
排序數(shù)據(jù):
df_sorted = df.sort_values(by="年齡", ascending=False) # 按年齡降序排列
print(df_sorted)
缺失值處理:
df.dropna() # 刪除缺失值
df.fillna("未知") # 填充缺失值
Pandas 提供強(qiáng)大的數(shù)據(jù)處理能力,讓數(shù)據(jù)分析更高效!
數(shù)據(jù)統(tǒng)計(jì) & 分析
計(jì)算基本統(tǒng)計(jì)信息:
print(df.describe()) # 統(tǒng)計(jì)平均值、標(biāo)準(zhǔn)差、最小值、最大值等
分組統(tǒng)計(jì):
df.groupby("城市")["年齡"].mean() # 按城市分組,計(jì)算平均年齡
數(shù)據(jù)透視表:
df.pivot_table(index="城市", values="年齡", aggfunc="mean") # 計(jì)算各城市的平均年齡
輕松完成數(shù)據(jù)統(tǒng)計(jì)與分析!