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

Python高效處理Excel文件的12個(gè)Pandas函數(shù)總結(jié)

 更新時(shí)間:2025年12月02日 09:47:17   作者:東眠的魚(yú)  
Pandas是Python中處理Excel文件的強(qiáng)大工具,下面我將詳細(xì)介紹12個(gè)最常用的高效處理Excel文件的Pandas函數(shù),并提供代碼演示,需要的朋友可以參考下

1.“pd.read_excel()”- 讀取Excel文件

  • 讀取Excel文件到DataFrame中,支持多種參數(shù)控制讀取方式。
import pandas as pd

# 基本讀取
df = pd.read_excel('data.xlsx')

# 讀取特定工作表
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 讀取特定列
df = pd.read_excel('data.xlsx', usecols=['Name', 'Age'])

# 讀取特定行范圍
df = pd.read_excel('data.xlsx', nrows=100)  # 只讀取前100行

2.“DataFrame.to_excel()”- 寫(xiě)入Excel文件

  • 將DataFrame寫(xiě)入Excel文件,支持多種格式控制。
# 基本寫(xiě)入
df.to_excel('output.xlsx')

# 不寫(xiě)入索引
df.to_excel('output.xlsx', index=False)

# 寫(xiě)入特定工作表
with pd.ExcelWriter('output.xlsx') as writer:
    df.to_excel(writer, sheet_name='Sheet1')

# 格式化輸出
with pd.ExcelWriter('formatted.xlsx', engine='xlsxwriter') as writer:
    df.to_excel(writer, sheet_name='Sheet1')
    workbook = writer.book
    worksheet = writer.sheets['Sheet1']
    
    # 設(shè)置列寬
    worksheet.set_column('A:A', 20)
    
    # 添加格式
    format1 = workbook.add_format({'bold': True, 'font_color': 'red'})
    worksheet.write(0, 0, 'Important Header', format1)

3. “pd.ExcelFile”- 處理多個(gè)工作表

  • 高效處理包含多個(gè)工作表的Excel文件。
with pd.ExcelFile('multi_sheet.xlsx') as xls:
    # 獲取所有工作表名
    sheet_names = xls.sheet_names
    
    # 讀取特定工作表
    df1 = pd.read_excel(xls, sheet_names[0])
    df2 = pd.read_excel(xls, sheet_names[1])
    
    # 或者使用字典存儲(chǔ)所有工作表
    all_sheets = {sheet: pd.read_excel(xls, sheet) for sheet in sheet_names}

4.“DataFrame.head()”- 查看前幾行

  • 快速查看DataFrame的前幾行數(shù)據(jù)。
# 查看前5行(默認(rèn))
print(df.head())

# 查看前10行
print(df.head(10))

5.“DataFrame.tail()”- 查看后幾行

  • 快速查看DataFrame的后幾行數(shù)據(jù)。
# 查看后5行(默認(rèn))
print(df.tail())

# 查看后3行
print(df.tail(3))

6.“DataFrame.info()”- 查看數(shù)據(jù)概覽

  • 獲取DataFrame的摘要信息,包括列數(shù)據(jù)類型和內(nèi)存使用情況。
df.info()

7. “DataFrame.describe()”- 統(tǒng)計(jì)摘要

  • 生成描述性統(tǒng)計(jì)信息,包括計(jì)數(shù)、均值、標(biāo)準(zhǔn)差、最小值、四分位數(shù)和最大值。
# 對(duì)所有數(shù)值列生成統(tǒng)計(jì)信息
print(df.describe())

# 對(duì)特定列生成統(tǒng)計(jì)信息
print(df['Age'].describe())

# 包含非數(shù)值列
print(df.describe(include='all'))

8. “DataFrame.dropna()”- 處理缺失值

  • 刪除包含缺失值的行或列。
# 刪除包含任何缺失值的行
df_clean = df.dropna()

# 刪除包含任何缺失值的列
df_clean = df.dropna(axis=1)

# 只刪除全為缺失值的行
df_clean = df.dropna(how='all')

# 刪除在特定列中包含缺失值的行
df_clean = df.dropna(subset=['Age', 'Salary'])

9. “DataFrame.fillna()”- 填充缺失值

  • 用指定值或方法填充缺失值。
# 用0填充所有缺失值
df_filled = df.fillna(0)

# 用前一個(gè)有效值填充(向前填充)
df_filled = df.fillna(method='ffill')

# 用后一個(gè)有效值填充(向后填充)
df_filled = df.fillna(method='bfill')

# 用列均值填充
df_filled = df.fillna(df.mean())

# 對(duì)不同列使用不同的填充值
fill_values = {'Age': df['Age'].median(), 'Department': 'Unknown'}
df_filled = df.fillna(fill_values)

10. “DataFrame.groupby()”- 分組聚合

  • 根據(jù)一個(gè)或多個(gè)鍵對(duì)數(shù)據(jù)進(jìn)行分組,然后對(duì)每個(gè)組應(yīng)用聚合函數(shù)。
# 基本分組
grouped = df.groupby('Department')

# 計(jì)算每個(gè)部門(mén)的平均工資
avg_salary = grouped['Salary'].mean()

# 多列分組
multi_grouped = df.groupby(['Department', 'Gender'])

# 多種聚合操作
agg_result = multi_grouped['Salary'].agg(['mean', 'median', 'count'])

# 分組后應(yīng)用多個(gè)函數(shù)
result = df.groupby('Department').agg({'Salary': ['mean', 'max'],'Age': 'min'})

11.“DataFrame.merge()”- 合并數(shù)據(jù)

  • 基于共同列合并兩個(gè)DataFrame。
# 創(chuàng)建示例DataFrame
df1 = pd.DataFrame({
    'EmployeeID': [1, 2, 3],
    'Name': ['Alice', 'Bob', 'Charlie']})

df2 = pd.DataFrame({
    'EmployeeID': [1, 2, 4],
    'Salary': [70000, 80000, 90000]})

# 內(nèi)連接(默認(rèn))
merged = pd.merge(df1, df2, on='EmployeeID')

# 左連接
left_merged = pd.merge(df1, df2, on='EmployeeID', how='left')

# 右連接
right_merged = pd.merge(df1, df2, on='EmployeeID', how='right')

# 外連接
outer_merged = pd.merge(df1, df2, on='EmployeeID', how='outer')

# 合并多個(gè)鍵
df3 = pd.DataFrame({
    'EmployeeID': [1, 1, 2],
    'Date': ['2022-01-01', '2022-02-01', '2022-01-15'],
    'Performance': [4.5, 4.7, 3.9]})

merged_multi = pd.merge(df1, df3, on='EmployeeID')

12.“DataFrame.apply()”- 應(yīng)用自定義函數(shù)

  • 對(duì)DataFrame的行或列應(yīng)用自定義函數(shù)。
# 創(chuàng)建示例DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Salary': [50000, 60000, 70000]})

# 對(duì)列應(yīng)用函數(shù) - 計(jì)算獎(jiǎng)金(薪資的10%)
df['Bonus'] = df['Salary'].apply(lambda x: x * 0.1)

# 對(duì)行應(yīng)用函數(shù) - 創(chuàng)建全名
df['Full_Name'] = df.apply(lambda row: f"{row['Name']} ({row['Age']})", axis=1)

# 定義更復(fù)雜的函數(shù)
def calculate_tax(salary, age):
    if age > 30:
        return salary * 0.2
    else:
        return salary * 0.15

df['Tax'] = df.apply(lambda row: calculate_tax(row['Salary'], row['Age']), axis=1)

# 使用applymap對(duì)每個(gè)元素應(yīng)用函數(shù)(適用于元素級(jí)操作)
df = df.applymap(lambda x: str(x).upper() if isinstance(x, str) else x)

額外技巧:處理大文件

  • 對(duì)于大型Excel文件,可以使用chunksize參數(shù)分塊讀?。?/li>
# 分塊讀取大文件
chunk_size = 10000  # 每次讀取的行數(shù)
chunks = pd.read_excel('large_file.xlsx', chunksize=chunk_size)

# 處理每個(gè)塊
for i, chunk in enumerate(chunks):
    # 處理數(shù)據(jù)
    processed_chunk = process_data(chunk)
    
    # 寫(xiě)入輸出文件(追加模式)
    if i == 0:
        processed_chunk.to_excel('output.xlsx', index=False)
    else:
        with pd.ExcelWriter('output.xlsx', mode='a', engine='openpyxl') as writer:
            processed_chunk.to_excel(writer, sheet_name=f'Chunk_{i}', index=False)

這些函數(shù)組合使用可以高效完成Excel數(shù)據(jù)的讀取、清洗、分析和輸出任務(wù)。根據(jù)具體需求選擇合適的函數(shù)和方法,可以顯著提高數(shù)據(jù)處理效率

總結(jié)

以上就是Python高效處理Excel文件的12個(gè)Pandas函數(shù)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python處理Excel的Pandas函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中的字典合并與列表合并技巧

    Python中的字典合并與列表合并技巧

    這篇文章主要介紹了Python中的字典合并與列表合并技巧,下文圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Python?PDF轉(zhuǎn)化wolrd代碼的寫(xiě)法小結(jié)

    Python?PDF轉(zhuǎn)化wolrd代碼的寫(xiě)法小結(jié)

    將PDF文件轉(zhuǎn)換為Word文檔的過(guò)程通常需要使用一些外部庫(kù)來(lái)實(shí)現(xiàn),因?yàn)镻ython本身并不直接支持這種轉(zhuǎn)換,這篇文章主要介紹了Python?PDF轉(zhuǎn)化wolrd代碼的寫(xiě)法小結(jié),需要的朋友可以參考下
    2024-06-06
  • Python開(kāi)發(fā)中最常見(jiàn)的5大性能陷阱及避免方法

    Python開(kāi)發(fā)中最常見(jiàn)的5大性能陷阱及避免方法

    Python因其簡(jiǎn)潔、易讀的語(yǔ)法和豐富的生態(tài)系統(tǒng)而廣受開(kāi)發(fā)者喜愛(ài),然而,這種簡(jiǎn)單背后隱藏著一些性能陷阱,尤其是對(duì)于新手來(lái)說(shuō),本文將深入剖析Python開(kāi)發(fā)中最常見(jiàn)的5大性能陷阱,并給出具體的優(yōu)化建議,需要的朋友可以參考下
    2026-03-03
  • python與QT聯(lián)合的詳細(xì)步驟記錄

    python與QT聯(lián)合的詳細(xì)步驟記錄

    這篇文章主要介紹了python與QT聯(lián)合的詳細(xì)步驟,文章還展示了如何在Python中調(diào)用QT的.ui文件來(lái)實(shí)現(xiàn)GUI界面,并介紹了多窗口的應(yīng)用,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • Django框架orM與自定義SQL語(yǔ)句混合事務(wù)控制操作

    Django框架orM與自定義SQL語(yǔ)句混合事務(wù)控制操作

    這篇文章主要介紹了Django框架orM與自定義SQL語(yǔ)句混合事務(wù)控制操作,結(jié)合實(shí)例形式分析了同一個(gè)方法里面既有ORM又有自定義SQL 語(yǔ)句的情況下事務(wù)控制相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • Python中鎖Lock的類型舉例詳解

    Python中鎖Lock的類型舉例詳解

    這篇文章主要介紹了Python中鎖Lock類型的相關(guān)資料,包括線程鎖、進(jìn)程鎖、可重入鎖、信號(hào)量、條件變量和事件,這些鎖機(jī)制在多線程和多進(jìn)程編程中用于同步訪問(wèn)共享資源,防止數(shù)據(jù)競(jìng)爭(zhēng)和不一致問(wèn)題,需要的朋友可以參考下
    2025-04-04
  • Flask 入門(mén)Web 微框架Hello Flask

    Flask 入門(mén)Web 微框架Hello Flask

    這篇文章主要介紹了 Flask 入門(mén)Web 微框架Hello Flask,F(xiàn)lask 是一個(gè) Python 實(shí)現(xiàn)的 Web 微框架,之所以稱之為微框架,是因?yàn)?nbsp;Flask 核心簡(jiǎn)單且易于擴(kuò)展,有兩個(gè)主要依賴,WSGI工具集:Werkzeug和模板引擎:Jinja2,Flask 只保留了 Web 開(kāi)發(fā)的核心功能,需要的朋友可以參考一下
    2021-11-11
  • Pycharm連接遠(yuǎn)程服務(wù)器并遠(yuǎn)程調(diào)試的全過(guò)程

    Pycharm連接遠(yuǎn)程服務(wù)器并遠(yuǎn)程調(diào)試的全過(guò)程

    PyCharm 是 JetBrains 開(kāi)發(fā)的一款 Python 跨平臺(tái)編輯器,下面這篇文章主要介紹了Pycharm連接遠(yuǎn)程服務(wù)器并遠(yuǎn)程調(diào)試的全過(guò)程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2021-06-06
  • Python while、for、生成器、列表推導(dǎo)等語(yǔ)句的執(zhí)行效率測(cè)試

    Python while、for、生成器、列表推導(dǎo)等語(yǔ)句的執(zhí)行效率測(cè)試

    這篇文章主要介紹了Python while、for、生成器、列表推導(dǎo)等語(yǔ)句的執(zhí)行效率測(cè)試,本文分別用兩段程序測(cè)算出了各語(yǔ)句的執(zhí)行效率,然后總結(jié)了什么情況下使用什么語(yǔ)句優(yōu)先使用的語(yǔ)句等,需要的朋友可以參考下
    2015-06-06
  • Python自定義異常的全面指南(入門(mén)到實(shí)踐)

    Python自定義異常的全面指南(入門(mén)到實(shí)踐)

    想象你正在開(kāi)發(fā)一個(gè)銀行系統(tǒng),用戶轉(zhuǎn)賬時(shí)余額不足,如果直接拋出ValueError,調(diào)用方很難區(qū)分是金額格式錯(cuò)誤還是余額不足,這正是Python自定義異常的價(jià)值所在——它讓錯(cuò)誤處理更精準(zhǔn)、代碼更易維護(hù)、調(diào)試更高效,本文將用最接地氣的方式,帶你掌握這個(gè)實(shí)用技能
    2025-08-08

最新評(píng)論

洛川县| 龙口市| 景东| 孟州市| 和顺县| 德令哈市| 石屏县| 土默特左旗| 黔西县| 漠河县| 泸定县| 永靖县| 和静县| 屏东县| 安泽县| 手游| 铁岭县| 建阳市| 丰顺县| 崇仁县| 盱眙县| 腾冲县| 湖南省| 仪征市| 柯坪县| 贞丰县| 连州市| 盘锦市| 平乡县| 洱源县| 富锦市| 德令哈市| 石屏县| 乐陵市| 光山县| 秦皇岛市| 庐江县| 绥江县| 青阳县| 叙永县| 长治县|