Pandas之pandas DataFrame iterrows詳解
Pandas2.2 DataFrame
Indexing, iteration
| 方法 | 描述 |
|---|---|
| DataFrame.head([n]) | 用于返回 DataFrame 的前幾行 |
| DataFrame.at | 快速訪問(wèn)和修改 DataFrame 中單個(gè)值的方法 |
| DataFrame.iat | 快速訪問(wèn)和修改 DataFrame 中單個(gè)值的方法 |
| DataFrame.loc | 用于基于標(biāo)簽(行標(biāo)簽和列標(biāo)簽)來(lái)訪問(wèn)和修改 DataFrame 中的數(shù)據(jù) |
| DataFrame.iloc | 用于基于整數(shù)位置(行號(hào)和列號(hào))來(lái)訪問(wèn)和修改 DataFrame 中的數(shù)據(jù) |
| DataFrame.insert(loc, column, value[, …]) | 用于在 DataFrame 的指定位置插入一個(gè)新的列 |
| DataFrame.iter() | 用于迭代 DataFrame 的列名 |
| DataFrame.items() | 用于迭代 DataFrame 的列名和列數(shù)據(jù) |
| DataFrame.keys() | 返回 DataFrame 的列名 |
| DataFrame.iterrows() | 用于逐行迭代 DataFrame |
pandas.DataFrame.iterrows()
pandas.DataFrame.iterrows() 方法用于逐行迭代 DataFrame,每次迭代返回一個(gè)包含行索引和行數(shù)據(jù)的元組。
行數(shù)據(jù)以 Series 對(duì)象的形式返回,其中索引是列名,值是該行對(duì)應(yīng)列的值。
- 語(yǔ)法:
for index, row in DataFrame.iterrows():
# 處理行索引和行數(shù)據(jù)- 示例:
假設(shè)我們有一個(gè) DataFrame 如下:
import pandas as pd
data = {
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
print(df)輸出:
A B C
row1 1 4 7
row2 2 5 8
row3 3 6 9
迭代行索引和行數(shù)據(jù)
使用 iterrows() 方法逐行迭代 DataFrame:
for index, row in df.iterrows():
print(f"Index: {index}")
print(f"Row: {row}")
print()輸出:
Index: row1
Row: A 1
B 4
C 7
Name: row1, dtype: int64Index: row2
Row: A 2
B 5
C 8
Name: row2, dtype: int64Index: row3
Row: A 3
B 6
C 9
Name: row3, dtype: int64
訪問(wèn)特定列的值
在迭代行數(shù)據(jù)時(shí),訪問(wèn)特定列的值:
for index, row in df.iterrows():
print(f"Index: {index}, A: {row['A']}, B: {row['B']}, C: {row['C']}")輸出:
Index: row1, A: 1, B: 4, C: 7
Index: row2, A: 2, B: 5, C: 8
Index: row3, A: 3, B: 6, C: 9
注意事項(xiàng):
- 性能問(wèn)題:
iterrows()在處理大型 DataFrame 時(shí)性能較差,因?yàn)樗鼤?huì)將每一行轉(zhuǎn)換為Series對(duì)象,這會(huì)導(dǎo)致額外的開(kāi)銷(xiāo)。對(duì)于性能敏感的操作,建議使用itertuples()或向量化操作。 - 修改數(shù)據(jù): 在迭代過(guò)程中修改 DataFrame 的數(shù)據(jù)可能會(huì)導(dǎo)致不可預(yù)測(cè)的結(jié)果。如果需要修改數(shù)據(jù),建議先創(chuàng)建一個(gè)副本或使用其他方法。
總結(jié)
pandas.DataFrame.iterrows() 方法提供了一種逐行迭代 DataFrame 的方式,每次迭代返回一個(gè)包含行索引和行數(shù)據(jù)的元組。
雖然使用方便,但在處理大型數(shù)據(jù)集時(shí)需要注意性能問(wèn)題。對(duì)于需要逐行處理數(shù)據(jù)的場(chǎng)景,iterrows() 是一個(gè)有用的工具。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
用Python制作mini翻譯器的實(shí)現(xiàn)示例
這篇文章主要介紹了用Python制作mini翻譯器的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
python按照l(shuí)ist中字典的某key去重的示例代碼
這篇文章主要介紹了python按照l(shuí)ist中字典的某key去重的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
安裝好Pycharm后如何配置Python解釋器簡(jiǎn)易教程
這篇文章主要介紹了安裝好Pycharm后如何配置Python解釋器簡(jiǎn)易教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
解決django前后端分離csrf驗(yàn)證的問(wèn)題
今天小編就為大家分享一篇解決django前后端分離csrf驗(yàn)證的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Python實(shí)現(xiàn)設(shè)計(jì)模式之單例模式詳解
這篇文章主要介紹了Python實(shí)現(xiàn)設(shè)計(jì)模式之單例模式詳解,設(shè)計(jì)模式是指軟件設(shè)計(jì)問(wèn)題的推薦方案,設(shè)計(jì)模式一般是描述如何組織代碼和使用最佳實(shí)踐來(lái)解決常見(jiàn)的設(shè)計(jì)問(wèn)題,需謹(jǐn)記一點(diǎn):設(shè)計(jì)模式是高層次的方案,并不關(guān)注具體的實(shí)現(xiàn)細(xì)節(jié),比如算法和數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-09-09
詳解python如何正確使用時(shí)間戳,日期,時(shí)間,時(shí)區(qū)
這篇文章主要為大家介紹了如何在python中正確使用時(shí)間戳,日期,時(shí)間,時(shí)區(qū),文中通過(guò)簡(jiǎn)單的示例進(jìn)行了詳細(xì)介紹,希望對(duì)大家有一定的幫助2024-11-11
Python寫(xiě)的一個(gè)簡(jiǎn)單DNS服務(wù)器實(shí)例
這篇文章主要介紹了Python寫(xiě)的一個(gè)簡(jiǎn)單DNS服務(wù)器實(shí)例,需要的朋友可以參考下2014-06-06

