在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