📜  遍历Pandas DataFrame中的行和列(1)

📅  最后修改于: 2023-12-03 15:28:28.419000             🧑  作者: Mango

遍历Pandas DataFrame中的行和列

Pandas是Python数据处理的常用库之一。在处理数据过程中,我们经常需要遍历Pandas DataFrame的行和列。本文将介绍Pandas中遍历DataFrame行和列的方法。

遍历行

在Pandas中,可以用iterrows()、itertuples()和apply()方法来遍历DataFrame的行。

使用iterrows()方法

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
==================
使用itertuples()方法

类似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()方法

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()方法

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
==================
使用iterrows()方法

类似遍历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()方法

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的列。以上几种方法的应用场景不同,需要根据具体情况进行选择。