在Pandas DataFrame中迭代行和列。
在本文中,我們將學習關於pandas、DataFrame以及如何使用各種方法在pandas DataFrame中迭代行和列。迭代是我們處理包含行和列的表格資料時執行的基本操作。
要在系統中安裝pandas,請在cmd中執行命令。
pip install pandas
方法1. 使用Iterrows()方法。
示例
import pandas as pd
df = pd.DataFrame({'Name': ['Kalyan', 'Gungun', 'Sona', 'Ram'],
'Age': [21, 20, 23, 23],
'Roll': [12, 13, 14, 15],
'Game': ['Cricket', 'Lodu', 'Chess', 'Carrom']})
print("No", "Name", "Age", "Roll", "Game")
for index, row in df.iterrows():
print(index, row['Name'], row['Age'], row['Roll'], row['Game'])
輸出
No Name Age Roll Game 0 Kalyan 21 12 Cricket 1 Gungun 20 13 Lodu 2 Sona 23 14 Chess 3 Ram 23 15 Carrom
解釋
在上面的程式中,我們建立一個包含名稱、年齡、學號和遊戲作為列的DataFrame。我們使用iterrows()方法,該方法允許我們迭代DataFrame並返回**行**作為包含索引和行資料的元組。最後,我們列印迭代後獲得的資料。
方法2. 使用itertuples()方法。
示例
import pandas as pd
df = pd.DataFrame({'Name': ['Kalyan', 'Gungun', 'Sona', 'Ram'],
'Age': [21, 20, 23, 23],
'Roll': [12, 13, 14, 15],
'Game': ['Cricket', 'Lodu', 'Chess', 'Carrom']})
print("No", "Name", "Age", "Roll", "Game")
for row in df.itertuples():
print(row.Index, row.Name, row.Age, row.Roll, row.Game)
輸出
No Name Age Roll Game 0 Kalyan 21 12 Cricket 1 Gungun 20 13 Lodu 2 Sona 23 14 Chess 3 Ram 23 15 Carrom
解釋
在上面的程式中,我們建立一個包含名稱、年齡、學號和遊戲作為列的DataFrame。我們使用itertuples()方法,該方法允許我們迭代行併為每一行和列的值返回**命名元組**。最後,我們列印迭代後獲得的資料。
方法3. 使用帶有Axis=1的Apply()函式進行行迭代。
示例
import pandas as pd
df = pd.DataFrame({'Name': ['Kalyan', 'Gungun', 'Sona', 'Ram'],
'Age': [21, 20, 23, 23],
'Roll': [12, 13, 14, 15],
'Game': ['Cricket', 'Lodu', 'Chess', 'Carrom']})
print("Name", "Age", "Roll", "Game")
def process_row(row):
print(row['Name'], row['Age'], row['Roll'], row['Game'])
df.apply(process_row, axis=1)
輸出
Name Age Roll Game Kalyan 21 12 Cricket Gungun 20 13 Lodu Sona 23 14 Chess Ram 23 15 Carrom
解釋
在上面的程式中,我們建立一個包含名稱、年齡、學號和遊戲作為列的DataFrame。我們使用apply()函式,該函式允許我們對DataFrame的每一行應用自定義函式。當我們寫axis=1時,我們可以迭代行並執行逐行操作。
方法4. 使用帶有Axis=0的Apply()函式進行列迭代。
示例
import pandas as pd
df = pd.DataFrame({'Name': ['Kalyan', 'Gungun', 'Sona', 'Ram'],
'Age': [21, 20, 23, 23],
'Roll': [12, 13, 14, 15],
'Game': ['Cricket', 'Lodu', 'Chess', 'Carrom']})
def process_column(column):
print(column)
df.apply(process_column, axis=0)
輸出
0 Kalyan 1 Gungun 2 Sona 3 Ram Name: Name, dtype: object 0 21 1 20 2 23 3 23 Name: Age, dtype: int64 0 12 1 13 2 14 3 15 Name: Roll, dtype: int64 0 Cricket 1 Lodu 2 Chess 3 Carrom Name: Game, dtype: object
解釋
在上面的程式中,我們建立了一個包含名稱、年齡、學號和遊戲作為列的DataFrame。我們使用apply()函式,該函式允許我們對DataFrame的每一列應用自定義函式。當我們寫axis=0時,我們可以迭代行並執行逐行操作。它類似於行迭代(在前面的示例中編寫)。
方法5. 使用Lambda函式和Apply()函式。
示例
import pandas as pd
df = pd.DataFrame({'Name': ['Kalyan', 'Gungun', 'Sona', 'Ram'],
'Age': [21, 20, 23, 23],
'Roll': [12, 13, 14, 15],
'Game': ['Cricket', 'Lodu', 'Chess', 'Carrom']})
print("Name", "Age", "Roll", "Game")
df.apply(lambda row: print(row['Name'], row['Age'], row['Roll'], row['Game']), axis=1)
輸出
Name Age Roll Game Kalyan 21 12 Cricket Gungun 20 13 Lodu Sona 23 14 Chess Ram 23 15 Carrom
解釋
在上面的程式中,我們建立一個包含名稱、年齡、學號和遊戲作為列的DataFrame。我們使用lambda函式以及apply()方法來高效地迭代DataFrame中的行。
因此,我們瞭解了各種方法,可以使用這些方法在Pandas DataFrame中迭代行和列。儘管在最後一種方法中,與iterrows()、itertuples()或apply()等其他方法相比,nditer()並不總是合適的。nditer()方法對於大型陣列以及需要更多迭代控制的情況非常有用。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP