📅  最后修改于: 2023-12-03 15:28:28.419000             🧑  作者: Mango
Pandas是Python数据处理的常用库之一。在处理数据过程中,我们经常需要遍历Pandas DataFrame的行和列。本文将介绍Pandas中遍历DataFrame行和列的方法。
在Pandas中,可以用iterrows()、itertuples()和apply()方法来遍历DataFrame的行。
iterrows()方法返回一个迭代器对象,可以用它遍历DataFrame的每一行,并解析每个元素的列标签和值。
import pandas as pd
# 创建数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 遍历DataFrame的每一行
for index, row in df.iterrows():
print('当前行索引:', index)
print(row)
print('==================')
Markdown返回:
当前行索引: 0
A 1
B 4
C 7
Name: 0, dtype: int64
==================
当前行索引: 1
A 2
B 5
C 8
Name: 1, dtype: int64
==================
当前行索引: 2
A 3
B 6
C 9
Name: 2, dtype: int64
==================
类似iterrows方法,itertuples方法也是返回一个迭代器对象,不过区别在于通过itertuples方法,可以返回namedtuples。
import pandas as pd
# 创建数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 遍历DataFrame的每一行
for row in df.itertuples():
print(row)
Markdown返回:
Pandas(Index=0, A=1, B=4, C=7)
Pandas(Index=1, A=2, B=5, C=8)
Pandas(Index=2, A=3, B=6, C=9)
apply()方法可以对DataFrame的每行执行一个自定义函数,可以很方便的实现遍历DataFrame的每行。
import pandas as pd
# 创建数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 返回每行的最大值
def get_max(row):
return max(row)
# 遍历DataFrame的每一行,并获取每行的最大值
df.apply(get_max, axis=1)
Markdown返回:
0 7
1 8
2 9
dtype: int64
在Pandas中,可以使用iteritems()、iterrows()和apply()方法遍历DataFrame的列。
iteritems()方法返回一个迭代器对象,可以用它遍历DataFrame的每一列,并解析每个元素的行标签和值。
import pandas as pd
# 创建数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 遍历DataFrame的每一列
for column, value in df.iteritems():
print('当前列标签:', column)
print(value)
print('==================')
Markdown返回:
当前列标签: A
0 1
1 2
2 3
Name: A, dtype: int64
==================
当前列标签: B
0 4
1 5
2 6
Name: B, dtype: int64
==================
当前列标签: C
0 7
1 8
2 9
Name: C, dtype: int64
==================
类似遍历DataFrame行的操作,iterrows方法也可以解析每个元素的行标签和值,只不过从列的角度去处理每一行。
import pandas as pd
# 创建数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 遍历DataFrame的每一列,并输出每行的值
for index, row in df.iteritems():
print('列标签:', index)
print(row.values)
print('==================')
Markdown返回:
列标签: A
[1 2 3]
==================
列标签: B
[4 5 6]
==================
列标签: C
[7 8 9]
==================
apply()方法也可以用于遍历DataFrame的列,只不过需要设置axis参数为0。
import pandas as pd
# 创建数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 返回每列的最大值
def get_max(column):
return max(column)
# 遍历DataFrame的每一列,并获取每列的最大值
df.apply(get_max, axis=0)
Markdown返回:
A 3
B 6
C 9
dtype: int64
遍历Pandas DataFrame的行和列,是Pandas中常用的操作之一。我们可以使用iterrows()、itertuples()和apply()方法遍历DataFrame的行;使用iteritems()、iterrows()和apply()方法遍历DataFrame的列。以上几种方法的应用场景不同,需要根据具体情况进行选择。