自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

高效數(shù)據(jù)分析必備:Pandas 最常用的十個核心函數(shù)

開發(fā) 數(shù)據(jù)分析
本文介紹十個高頻函數(shù),結(jié)合代碼示例,幫助您快速掌握核心功能。通過掌握這10個函數(shù),您能高效完成80%的日常數(shù)據(jù)處理任務(wù)。

Pandas是Python數(shù)據(jù)分析的利器,其內(nèi)置函數(shù)能大幅簡化數(shù)據(jù)操作流程。本文介紹10個高頻函數(shù),結(jié)合代碼示例,幫助您快速掌握核心功能。

1. apply()

功能:對DataFrame的行或列應(yīng)用自定義函數(shù)。場景:數(shù)據(jù)轉(zhuǎn)換或復(fù)雜計(jì)算。

# 示例:計(jì)算BMI指數(shù)(體重kg / (身高m)^2)
df['BMI'] = df.apply(lambda row: row['weight'] / (row['height']/100)**2, axis=1)

2. groupby()

功能:按指定列分組,實(shí)現(xiàn)聚合分析。場景:統(tǒng)計(jì)分組數(shù)據(jù)(如分地區(qū)銷售總額)。

# 按城市分組計(jì)算平均薪資
grouped = df.groupby('city')['salary'].mean()

# 多列聚合(同時(shí)計(jì)算均值和最大值)
result = df.groupby('department').agg({'salary': ['mean', 'max']})

3. fillna()

功能:填充缺失值(NaN)。場景:數(shù)據(jù)清洗時(shí)處理缺失值。

# 用均值填充年齡缺失值
df['age'] = df['age'].fillna(df['age'].mean())

# 用前向填充法填充(用前一行數(shù)據(jù)填充)
df['sales'] = df['sales'].fillna(method='ffill')

4. merge()

功能:合并多個DataFrame(類似SQL的JOIN)。場景:整合多源數(shù)據(jù)。

# 按ID合并兩個表(默認(rèn)內(nèi)連接)
merged_df = pd.merge(df1, df2, on='id')

# 左連接(保留左表所有數(shù)據(jù))
merged_left = pd.merge(df1, df2, on='id', how='left')

5. pivot_table()

功能:創(chuàng)建數(shù)據(jù)透視表,多維數(shù)據(jù)匯總。場景:交叉分析(如分地區(qū)、分產(chǎn)品統(tǒng)計(jì))。

# 統(tǒng)計(jì)不同城市和性別的平均薪資
pivot = pd.pivot_table(
    df, 
    values='salary', 
    index='city', 
    columns='gender', 
    aggfunc='mean'
)

6. value_counts()

功能:統(tǒng)計(jì)列中唯一值的頻次。場景:快速查看數(shù)據(jù)分布。

# 統(tǒng)計(jì)城市分布
city_counts = df['city'].value_counts()

# 顯示占比(歸一化)
city_ratio = df['city'].value_counts(normalize=True)

7. dropna()

功能:刪除包含缺失值的行或列。場景:清理無效數(shù)據(jù)。

# 刪除所有包含缺失值的行
df_clean = df.dropna()

# 刪除某列缺失值
df_clean_age = df.dropna(subset=['age'])

8. astype()

功能:強(qiáng)制轉(zhuǎn)換列的數(shù)據(jù)類型。場景:修復(fù)數(shù)據(jù)類型錯誤(如字符串轉(zhuǎn)數(shù)值)。

# 將字符串列轉(zhuǎn)為整數(shù)
df['user_id'] = df['user_id'].astype(int)

# 將日期字符串轉(zhuǎn)為datetime類型
df['date'] = pd.to_datetime(df['date'])

9. sort_values()

功能:按指定列的值排序。場景:排序分析(如按銷售額降序)。

# 按薪資降序排列
df_sorted = df.sort_values('salary', ascending=False)

# 多列排序(先按城市升序,再按薪資降序)
df_sorted = df.sort_values(['city', 'salary'], ascending=[True, False])

10. query()

功能:通過表達(dá)式篩選數(shù)據(jù)。場景:簡化復(fù)雜條件查詢。

# 篩選年齡大于30且薪資高于5萬的記錄
filtered = df.query('age > 30 and salary > 50000')

總結(jié)

函數(shù)

典型應(yīng)用場景

apply()

自定義行/列計(jì)算

groupby()

分組聚合統(tǒng)計(jì)

fillna()

缺失值填充

merge()

多表關(guān)聯(lián)整合

pivot_table()

多維數(shù)據(jù)透視

value_counts()

唯一值頻次統(tǒng)計(jì)

dropna()

刪除缺失數(shù)據(jù)

astype()

數(shù)據(jù)類型轉(zhuǎn)換

sort_values()

數(shù)據(jù)排序

query()

表達(dá)式篩選數(shù)據(jù)

進(jìn)階技巧

  • 鏈?zhǔn)讲僮鳎航Y(jié)合多個函數(shù)連續(xù)處理數(shù)據(jù)(如 df.fillna(0).groupby('city').mean())。
  • lambda函數(shù):與apply()配合實(shí)現(xiàn)靈活計(jì)算。
  • pd.to_datetime():專門處理時(shí)間序列的轉(zhuǎn)換函數(shù)。

通過掌握這10個函數(shù),您能高效完成80%的日常數(shù)據(jù)處理任務(wù)。建議結(jié)合日常實(shí)際數(shù)據(jù)集練習(xí),深化理解。

責(zé)任編輯:趙寧寧 來源: Python數(shù)智工坊
相關(guān)推薦

2024-01-24 13:14:00

Python內(nèi)置函數(shù)工具

2009-09-03 10:08:27

JavaScript自

2023-10-04 00:17:00

SQL數(shù)據(jù)庫

2024-01-30 00:36:41

Python機(jī)器學(xué)習(xí)

2024-02-20 14:25:39

Python數(shù)據(jù)分析

2024-10-15 10:40:09

2023-10-30 18:00:00

Docker命令開源平臺

2024-01-22 13:53:00

Linux環(huán)境變量

2024-06-26 13:11:40

2024-05-13 11:43:39

Python數(shù)據(jù)分析CSV

2019-02-18 15:05:16

Python內(nèi)置函數(shù)索引

2024-02-28 18:01:20

IDEAIDEtry

2023-03-24 16:41:36

Pandas技巧數(shù)據(jù)處理

2017-09-21 13:04:35

數(shù)據(jù)挖掘分析分析方法數(shù)據(jù)分析師

2022-07-08 06:01:37

D-Tale輔助工具

2021-12-24 10:45:19

PandasLambda數(shù)據(jù)分析

2021-07-07 09:50:23

NumpyPandasPython

2024-04-09 08:47:34

PandasRollingPython

2024-10-30 10:00:00

Python函數(shù)

2012-11-08 09:37:45

代碼編程語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號