欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pandas遍歷DataFrame每一行的多種方法

 更新時間:2025年09月15日 08:51:38   作者:袁袁袁袁滿  
Pandas遍歷DataFrame有多種方法:iterrows(返回Series,適合需索引)、itertuples(命名元組,高性能)、apply(向量化計算)、df.values(最快但無列名),最佳實踐是優(yōu)先使用向量化操作,避免逐行遍歷,大數(shù)據(jù)推薦dask或swifter加速,下面由小編給大家詳細說說

在 Pandas 中,遍歷 DataFrame 的每一行有多種方法,每種方法適用于不同的場景。以下是常見的幾種方式及其適用場景:

1. iterrows() - 返回索引和行數(shù)據(jù)(Series)

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

for index, row in df.iterrows():
    print(f"索引: {index}, A列值: {row['A']}, B列值: {row['B']}")

特點

  • 返回 (index, Series) 對,row 是 Pandas Series 對象。
  • 缺點:性能較差(因為 row 是 Series,不是原生 Python 類型)。
  • 適用場景:需要訪問行索引和少量數(shù)據(jù)時。

2. itertuples() - 返回命名元組(更快)

for row in df.itertuples():
    print(f"索引: {row.Index}, A列值: {row.A}, B列值: {row.B}")

特點

  • 返回 namedtuple,訪問列名更方便(如 row.A 而不是 row['A'])。
  • 優(yōu)點:比 iterrows() 快很多(因為直接操作元組)。
  • 適用場景:需要高性能遍歷,且不需要修改數(shù)據(jù)。

3. apply() - 對每行應用函數(shù)(推薦)

def process_row(row):
    return f"A={row['A']}, B={row['B']}"

df.apply(process_row, axis=1)  # axis=1 表示按行應用

特點

  • 使用向量化操作,比 iterrows() / itertuples() 更快。
  • 適用場景:需要對每行進行計算并返回新數(shù)據(jù)。

4. items() - 遍歷列(而非行)

for col_name, col_data in df.items():
    print(f"列名: {col_name}")
    print(f"列數(shù)據(jù):\n{col_data}")

特點

  • 遍歷的是 而不是行。
  • 適用場景:需要按列處理數(shù)據(jù)時。

5. 直接轉(zhuǎn)換為 NumPy 數(shù)組(最快)

for row in df.values:  # 或 df.to_numpy()
    print(f"A={row[0]}, B={row[1]}")  # 按列索引訪問

特點

  • 直接操作 NumPy 數(shù)組,速度最快。
  • 缺點:丟失列名,只能按索引訪問。
  • 適用場景:需要極致性能,且不需要列名。

6. 使用 loc 或 iloc 訪問特定行

for i in range(len(df)):
    print(df.loc[i, 'A'])  # 按標簽訪問
    print(df.iloc[i, 0])   # 按位置訪問

特點

  • 適用于隨機訪問特定行。
  • 缺點:性能較差(每次調(diào)用 loc / iloc 都有開銷)。

性能對比

方法速度適用場景
itertuples()????高性能遍歷
apply()???向量化操作
iterrows()?需要索引時
df.values?????極致性能(無列名)
loc / iloc?隨機訪問

最佳實踐

  1. 盡量避免逐行遍歷,優(yōu)先使用 Pandas 的向量化操作(如 df['A'] * 2)。
  2. 如果必須遍歷
    • 需要列名 → itertuples()
    • 需要極致性能 → df.valuesto_numpy()
    • 需要修改數(shù)據(jù) → iterrows()apply()
  3. 大數(shù)據(jù)處理:考慮 daskswifter 加速。

示例:修改 DataFrame 的某一列

# 方法1:使用 iterrows()(不推薦,慢)
for index, row in df.iterrows():
    df.loc[index, 'B'] = row['B'] + '_modified'

# 方法2:使用 apply()(推薦)
df['B'] = df['B'].apply(lambda x: x + '_modified')

# 方法3:向量化操作(最快)
df['B'] = df['B'] + '_modified'

總結(jié)

需求推薦方法
高性能遍歷itertuples()
需要修改數(shù)據(jù)apply() 或 iterrows()
極致性能df.values
向量化計算直接使用 Pandas/NumPy 操作

盡量避免逐行遍歷,Pandas 的優(yōu)勢在于 向量化計算!

到此這篇關(guān)于Pandas遍歷DataFrame每一行的多種方法的文章就介紹到這了,更多相關(guān)Pandas遍歷DataFrame每一行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Python的Flask框架中實現(xiàn)單元測試的教程

    在Python的Flask框架中實現(xiàn)單元測試的教程

    這篇文章主要介紹了在Python的Flask框架中實現(xiàn)單元測試的教程,屬于自動化部署的方面,可以給debug工作帶來諸多便利,需要的朋友可以參考下
    2015-04-04
  • python用列表生成式寫嵌套循環(huán)的方法

    python用列表生成式寫嵌套循環(huán)的方法

    今天小編就為大家分享一篇python用列表生成式寫嵌套循環(huán)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python中文文本切詞Kmeans聚類

    python中文文本切詞Kmeans聚類

    這篇文章主要為大家介紹了python中文文本切詞Kmeans聚類的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python版本五子棋的實現(xiàn)代碼

    python版本五子棋的實現(xiàn)代碼

    五子棋是常見的一款小游戲,五子棋問題是人工智能中的一個經(jīng)典問題。這篇文章主要介紹了python版本五子棋的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Python裝飾器用法實例總結(jié)

    Python裝飾器用法實例總結(jié)

    這篇文章主要介紹了Python裝飾器用法,結(jié)合實例形式總結(jié)分析了Python常用裝飾器的概念、功能、使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2018-02-02
  • Python多線程使用方法詳細講解

    Python多線程使用方法詳細講解

    這篇文章主要介紹了Python中的多線程實例,一個CPU,將時間切成一片一片的,CPU輪轉(zhuǎn)著去處理一件一件的事情,到了規(guī)定的時間片就處理下一件事情,更多的相關(guān)內(nèi)容需要的小伙伴可以參考下面文章詳細
    2022-10-10
  • Win10+python3.6+git運行出現(xiàn)問題的解決

    Win10+python3.6+git運行出現(xiàn)問題的解決

    這篇文章主要介紹了Win10+python3.6+git運行出現(xiàn)問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python任務調(diào)度模塊APScheduler使用

    Python任務調(diào)度模塊APScheduler使用

    這篇文章主要介紹了Python任務調(diào)度模塊APScheduler使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python中無限循環(huán)需要什么條件

    Python中無限循環(huán)需要什么條件

    在本篇文章里小編給大家分享的是關(guān)于Python中無限循環(huán)的條件的相關(guān)文章,需要的朋友們可以參考下。
    2020-05-05
  • Python爬蟲實現(xiàn)百度圖片自動下載

    Python爬蟲實現(xiàn)百度圖片自動下載

    這篇文章主要介紹了Python爬蟲實現(xiàn)百度圖片自動下載的方法以及相關(guān)代碼分析,對此有興趣的朋友參考下。
    2018-02-02

最新評論