当使用Pandas中的Dataframe时,我们要遍历每一行通常有三种方法:
- 使用迭代器来遍历DataFrame的每一行
这种方法比较原始,使用iterrows()方法来迭代每一行,并访问每一行的值。但是由于其内部实现需要循环遍历每一行,所以处理大数据集时比较慢。
import pandas as pd
df = pd.DataFrame({'Name':['John', 'Alex', 'Bob'], 'Age':[28, 26, 22], 'Salary': [1000, 1200, 800]})
for index, row in df.iterrows():
print(row['Name'], row['Age'], row['Salary'])
- 使用apply()方法逐行处理DataFrame
这种方法使用DataFrame的apply()方法,逐行遍历DataFrame并将每一行传递给函数处理。这比iterrows()方法更快,但仍然比较慢,因为它需要手动编写函数。
import pandas as pd
df = pd.DataFrame({'Name':['John', 'Alex', 'Bob'], 'Age':[28, 26, 22], 'Salary': [1000, 1200, 800]})
def print_row(row):
print(row['Name'], row['Age'], row['Salary'])
df.apply(print_row, axis=1)
- 使用iterrows()和列索引
这种方法结合了iterrows()和使用列索引来访问DataFrame的每一行的值。使用这种方法,我们可以在遍历DataFrame的同时,使用列名快速访问每一行的值。
import pandas as pd
df = pd.DataFrame({'Name':['John', 'Alex', 'Bob'], 'Age':[28, 26, 22], 'Salary': [1000, 1200, 800]})
for index, row in df.iterrows():
print(row.Name, row.Age, row.Salary)
这三种方法的比较如下:
方法 | 优点 | 缺点 |
---|---|---|
iterrows()方法 | 功能强大,可以直接使用行的整个值 | 处理大数据集时比较慢 |
apply()方法 | 可以手动编写函数进行逐行处理 | 处理大数据集时比较慢 |
使用iterrows()和列索引 | 结合了iterrows()和使用列索引的优点 | 对于复杂的索引,不太容易工作 |
以上是在Pandas Dataframe中迭代行的不同方法的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Pandas Dataframe中迭代行的不同方法 - Python技术站