Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()詳解
Pandas Dataframe數(shù)據(jù)幀的迭代
迭代數(shù)據(jù)幀通常不是推薦的做法,因為 pandas 的設計初衷是向量化操作以提高效率。然而,在某些情況下,也可能需要逐行或逐列迭代數(shù)據(jù)。
需要注意的是,迭代數(shù)據(jù)幀的行或列可能會導致性能下降,特別是對于大型數(shù)據(jù)集。在可能的情況下,最好使用向量化操作來提高效率。
迭代行
1.使用 .iterrows()
.iterrows()是一個生成器,它迭代數(shù)據(jù)幀的索引和行。- 對于每一行,它返回一個包含索引和該行數(shù)據(jù)的元組。
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
for index, row in df.iterrows():
print(f"Index: {index}")
print(row) 2.使用 .itertuples()
.itertuples()方法比.iterrows()更快,因為它返回命名元組,這些元組在Python中的性能優(yōu)于字典。- 返回的元組的第一個元素是行的索引,其余元素是行中的數(shù)據(jù)。
.itertuples()返回的是命名元組,可以通過屬性名稱訪問這些元素,例如row.A、row.B等。
import pandas as pd
df = pd.DataFrame({
'A': [10, 20, 30],
'B': [40, 50, 60],
'C': ['p', 'q', 'r']
})
for row in df.itertuples():
print(row)
'''
Pandas(Index=0, A=10, B=40, C='p')
Pandas(Index=1, A=20, B=50, C='q')
Pandas(Index=2, A=30, B=60, C='r')'''迭代列
迭代列通常更簡單,因為可以直接迭代數(shù)據(jù)幀的列名或訪問列數(shù)據(jù)。
import pandas as pd
# 創(chuàng)建一個DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# 方法1: 迭代列名
for column in df.columns:
print(f"Column Name: {column}")
# 通過列名訪問列數(shù)據(jù)
print(df[column])
# 方法2: 直接迭代DataFrame對象(默認迭代列名)
for column in df:
print(f"Column Name: {column}")
print(df[column])
# 方法3: 使用df.items()同時迭代列名和數(shù)據(jù)
for column, data in df.items():
print(f"Column Name: {column}")
# data變量直接包含列數(shù)據(jù),無需通過df[column]訪問
print(data) 總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python 實用工具狀態(tài)機transitions
這篇文章主要介紹了python 實用工具狀態(tài)機transitions的使用,幫助大家更好的理解和學習python,感興趣的朋友可以了解下2020-11-11
Python實現(xiàn)的飛速中文網(wǎng)小說下載腳本
這篇文章主要介紹了Python實現(xiàn)的飛速中文網(wǎng)小說下載腳本,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-04-04
python機器學習創(chuàng)建基于規(guī)則聊天機器人過程示例詳解
這篇文章主要為大家介紹了python實現(xiàn)基于規(guī)則聊天機器人的過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2021-11-11
Python實現(xiàn)郵件發(fā)送的詳細設置方法(遇到問題)
這篇文章主要介紹了Python實現(xiàn)郵件發(fā)送的詳細設置方法(遇到問題),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

