最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解Python Pandas中67個最常用的數(shù)據(jù)處理函數(shù)

 更新時間:2025年12月22日 08:47:31   作者:小莊-Python辦公  
Pandas 是 Python 中最強大的數(shù)據(jù)處理庫之一,無論是數(shù)據(jù)分析、清洗還是可視化,都離不開它,本文整理了 67 個最常用的 Pandas 函數(shù),建議收藏,隨時查閱

Pandas 是 Python 中最強大的數(shù)據(jù)處理庫之一,無論是數(shù)據(jù)分析、清洗還是可視化,都離不開它。本文整理了 67 個最常用的 Pandas 函數(shù),涵蓋了從數(shù)據(jù)導入、查看、清洗、選擇、排序、聚合到合并的全過程。建議收藏,隨時查閱!

1. 創(chuàng)建與導入數(shù)據(jù) (Creating & Loading Data)

數(shù)據(jù)分析的第一步通常是將數(shù)據(jù)加載到 DataFrame 中。

import pandas as pd

# 自己創(chuàng)建數(shù)據(jù)框,用于練習
pd.DataFrame() 

# 從 CSV 文件導入數(shù)據(jù)
pd.read_csv('filename.csv') 

# 從限定分隔符的文本文件導入數(shù)據(jù)
pd.read_table('filename.txt') 

# 從 Excel 文件導入數(shù)據(jù)
pd.read_excel('filename.xlsx') 

# 從 SQL 表/庫導入數(shù)據(jù)
pd.read_sql(query, connection_object) 

# 從 JSON 格式的字符串導入數(shù)據(jù)
pd.read_json(json_string) 

# 解析 URL、字符串或者 HTML 文件,抽取其中的 tables 表格
pd.read_html(url) 

2. 導出數(shù)據(jù) (Exporting Data)

處理完數(shù)據(jù)后,我們通常需要將其保存為各種格式。

# 導出數(shù)據(jù)到 CSV 文件
df.to_csv('filename.csv') 

# 導出數(shù)據(jù)到 Excel 文件
df.to_excel('filename.xlsx') 

# 導出數(shù)據(jù)到 SQL 表
df.to_sql(table_name, connection_object) 

# 以 Json 格式導出數(shù)據(jù)到文本文件
df.to_json('filename.json') 

# 將多個數(shù)據(jù)幀寫入同一個工作簿的多個 sheet (工作表)
writer = pd.ExcelWriter('test.xlsx', index=False) 
df1.to_excel(writer, sheet_name='單位') 
writer.save() # 注意:在較新版本 Pandas 中,推薦使用 with pd.ExcelWriter(...) as writer: 語法

3. 查看與檢查數(shù)據(jù) (Inspecting Data)

在進行復雜操作前,先了解數(shù)據(jù)的基本結(jié)構(gòu)和概況。

# 查看 DataFrame 對象的前 n 行
df.head(n) 

# 查看 DataFrame 對象的最后 n 行
df.tail(n) 

# 查看行數(shù)和列數(shù)
df.shape 

# 查看索引、數(shù)據(jù)類型和內(nèi)存信息
df.info() 

# 查看字段(首行)名稱
df.columns 

# 查看數(shù)值型列的匯總統(tǒng)計
df.describe() 

# 查看 Series 對象的唯一值和計數(shù)
s.value_counts(dropna=False) 

# 查看 DataFrame 對象中每一列的唯一值和計數(shù)
df.apply(pd.Series.value_counts) 

# 查看是否有缺失值
df.isnull().any() 

# 查看 column_name 字段數(shù)據(jù)重復的數(shù)據(jù)信息
df[df['column_name'].duplicated()] 

# 查看 column_name 字段數(shù)據(jù)重復的個數(shù)
df[df['column_name'].duplicated()].count() 

4. 數(shù)據(jù)選擇與索引 (Selecting & Indexing)

靈活地選取我們需要的數(shù)據(jù)子集。

# 根據(jù)列名,并以 Series 的形式返回列
df['col'] 

# 以 DataFrame 形式返回多列
df[['col1', 'col2']] 

# 按位置選取數(shù)據(jù) (Series)
s.iloc[0] 

# 按索引選取數(shù)據(jù) (Series)
s.loc['index_one'] 

# 返回第一行
df.iloc[0, :] 

# 返回第一列的第一個元素
df.iloc[0, 0] 

# 返回第一行(索引為默認的數(shù)字時,用法同 df.iloc),但需要注意的是 loc 是按索引, iloc 參數(shù)只接受數(shù)字參數(shù)
df.loc[0, :] 

# 【已棄用】返回字段為 col1 和 col2 的前 5 條數(shù)據(jù)
# 注意:.ix 在新版 Pandas 中已被移除,請使用 .loc 或 .iloc
# df.ix[[:5], ["col1", "col2"]] 

# 選擇索引名稱為 5,字段名稱為 col1 的數(shù)據(jù)
df.at[5, "col1"] 

# 選擇索引排序為 5,字段排序為 0 的數(shù)據(jù)
df.iat[5, 0] 

5. 數(shù)據(jù)清洗與轉(zhuǎn)換 (Cleaning & Transforming)

數(shù)據(jù)清洗是數(shù)據(jù)分析中最耗時的部分,掌握這些函數(shù)能事半功倍。

# 重命名列名(需要將所有列名列出,否則會報錯)
df.columns = ['a', 'b', 'c'] 

# 檢查 DataFrame 對象中的空值,并返回一個 Boolean 數(shù)組
pd.isnull(df) 

# 檢查 DataFrame 對象中的非空值,并返回一個 Boolean 數(shù)組
pd.notnull(df) 

# 刪除所有包含空值的行
df.dropna() 

# 刪除所有包含空值的列
df.dropna(axis=1) 

# 刪除所有小于 n 個非空值的行
df.dropna(axis=1, thresh=n) 

# 用 x 替換 DataFrame 對象中所有的空值
df.fillna(value=x) 

# 指定列填充缺失值
df['column_name'].fillna(x) 

# 將 Series 中的數(shù)據(jù)類型更改為 float 類型
s.astype(float) 

# 用 ‘one' 代替所有等于 1 的值
s.replace(1, 'one') 

# 用 'one' 代替 1,用 'three' 代替 3
s.replace([1, 3], ['one', 'three']) 

# 批量更改列名
df.rename(columns=lambda x: x + 1) 

# 選擇性更改列名
df.rename(columns={'old_name': 'new_name'}) 

# 將某個字段設(shè)為索引,可接受列表參數(shù),即設(shè)置多個索引
df.set_index('column_one') 

# 將索引設(shè)置為 col1 字段,并將索引新設(shè)置為 0, 1, 2...
df.reset_index() # 原文為 df.reset_index("col1"),通常直接調(diào)用或傳 drop=True

# 批量重命名索引
df.rename(index=lambda x: x + 1) 

6. 排序 (Sorting)

讓數(shù)據(jù)有序排列,方便觀察趨勢。

# 對前 5 條數(shù)據(jù)進行索引排序
df.sort_index().loc[:5] 

# 按照列 col1 排序數(shù)據(jù),默認升序排列
df.sort_values('col1') 

# 按照列 col1 降序排列數(shù)據(jù)
df.sort_values('col2', ascending=False) 

# 先按列 col1 升序排列,后按 col2 降序排列數(shù)據(jù)
df.sort_values(['col1', 'col2'], ascending=[True, False]) 

7. 分組與聚合 (Grouping & Aggregation)

數(shù)據(jù)透 視和統(tǒng)計分析的核心功能。

# 返回一個按列 col 進行分組的 Groupby 對象
df.groupby('col') 

# 返回一個按多列進行分組的 Groupby 對象
df.groupby(['col1', 'col2']) 

# 返回按列 col1 進行分組后,列 col2 的均值
df.groupby('col1')['col2'].agg('mean') 
# agg 可以接受列表參數(shù),如 agg([len, np.mean])

# 創(chuàng)建一個按列 col1 進行分組,計算 col2 的最大值和 col3 的最大值、最小值的數(shù)據(jù)透 視表
df.pivot_table(index='col1', values=['col2', 'col3'], aggfunc={'col2': max, 'col3': [max, min]}) 

# 返回按列 col1 分組的所有列的均值
df.groupby('col1').agg(np.mean) 

# 對特定列聚合
df.groupby('col1')['col2'].agg(['min', 'max']) 

# 對 DataFrame 中的每一列應用函數(shù) np.mean
data.apply(np.mean) 

# 對 DataFrame 中的每一行應用函數(shù) np.max
data.apply(np.max, axis=1) 

# 通常與 groupby 連用,避免索引更改(返回與原表長度一致的序列)
df.groupby('col1')['col2'].transform("sum") 

8. 合并與連接 (Merging & Joining)

將多個數(shù)據(jù)表整合成一張大表。

# 【已棄用】將 df2 中的行添加到 df1 的尾部
# 注意:.append() 在 Pandas 2.0+ 中已被移除,請使用 pd.concat()
# df1.append(df2) 
pd.concat([df1, df2]) # 推薦做法

# 將 df2 中的列添加到 df1 的尾部,值為空的對應行與對應列都不要
df.concat([df1, df2], axis=1, join='inner') 

# 對 df1 的列和 df2 的列執(zhí)行 SQL 形式的 join
# 默認按照索引來進行合并,如果 df1 和 df2 有共同字段時,會報錯
# 可通過設(shè)置 lsuffix, rsuffix 來進行解決
# 如果需要按照共同列進行合并,就要用到 set_index(col1)
df1.join(df2.set_index('col1'), on='col1', how='inner') 

# 對 df1 和 df2 合并,按照 col1,方式為 outer
pd.merge(df1, df2, on='col1', how='outer') 

# 與 df1.join(df2, how='outer') 效果相同
pd.merge(df1, df2, left_index=True, right_index=True, how='outer') 

9.總結(jié)

這 67 個函數(shù)涵蓋了 Pandas 使用場景的 80% 以上。熟練掌握它們,你的數(shù)據(jù)處理效率將得到質(zhì)的飛躍!

Tips:

  • 遇到報錯時,先檢查數(shù)據(jù)類型 (df.info()) 和缺失值 (df.isnull())。
  • 盡量使用向量化操作(如 apply, map, 直接運算),避免使用 for 循環(huán)遍歷 DataFrame。
  • 注意 Pandas 版本更新,部分舊函數(shù)(如 ix, append)已被新函數(shù)替代。

到此這篇關(guān)于一文詳解Python Pandas中67個最常用的數(shù)據(jù)處理函數(shù)的文章就介紹到這了,更多相關(guān)Python Pandas函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

迭部县| 华亭县| 长垣县| 舟山市| 盖州市| 峨边| 元氏县| 锡林郭勒盟| 达日县| 南京市| 弥渡县| 武功县| 德阳市| 尼玛县| 河北省| 平遥县| 贡觉县| 新乡市| 兴城市| 敦煌市| 新密市| 义乌市| 广宗县| 青神县| 望奎县| 万山特区| 江城| 黄平县| 沈阳市| 西林县| 安义县| 渝中区| 章丘市| 綦江县| 静海县| 孝感市| 敦化市| 唐河县| 五寨县| 胶南市| 南川市|