您的位置:

Python如何遍历DataFrame?

一、DataFrame的基本概念

在Python中,DataFrame是一个非常常用的数据结构,它是一个二维的表格,每个列可以是不同的数据类型(例如数字、字符串、布尔值等),而且可以自定义行标签和列标签。通过pandas库中的DataFrame类,我们可以轻松地读取、写入、操作和可视化这些数据。

下面是一个简单的示例代码,演示如何创建一个DataFrame:

import pandas as pd

data = {'姓名': ['小明', '小红', '小华'],
        '年龄': [18, 19, 20],
        '成绩': [90, 95, 80]}
df = pd.DataFrame(data)
print(df)

输出结果为:

   姓名  年龄  成绩
0  小明  18  90
1  小红  19  95
2  小华  20  80

二、DataFrame的遍历方式

1. 按列遍历

最常见的遍历方式是按列遍历。我们可以使用DataFrame的列名来访问每一列,然后通过for循环遍历每个元素。下面是一个简单的示例代码:

import pandas as pd

data = {'姓名': ['小明', '小红', '小华'],
        '年龄': [18, 19, 20],
        '成绩': [90, 95, 80]}
df = pd.DataFrame(data)
for column in df:
    print(df[column])

输出结果为:

0    小明
1    小红
2    小华
Name: 姓名, dtype: object
0    18
1    19
2    20
Name: 年龄, dtype: int64
0    90
1    95
2    80
Name: 成绩, dtype: int64

我们也可以通过使用iteritems()函数,返回每个列名和列本身的一个元组。下面是示例代码:

import pandas as pd

data = {'姓名': ['小明', '小红', '小华'],
        '年龄': [18, 19, 20],
        '成绩': [90, 95, 80]}
df = pd.DataFrame(data)
for column_name, column_data in df.iteritems():
    print(f"列名:{column_name}")
    print(f"列:{column_data}")

输出结果如下:

列名:姓名
列:0    小明
1    小红
2    小华
Name: 姓名, dtype: object
列名:年龄
列:0    18
1    19
2    20
Name: 年龄, dtype: int64
列名:成绩
列:0    90
1    95
2    80
Name: 成绩, dtype: int64

2. 按行遍历

按行遍历可以使用iterrows()函数,它会返回每一行的索引和行本身的元组。下面是示例代码:

import pandas as pd

data = {'姓名': ['小明', '小红', '小华'],
        '年龄': [18, 19, 20],
        '成绩': [90, 95, 80]}
df = pd.DataFrame(data)
for row_index, row_data in df.iterrows():
    print(f"行索引:{row_index}")
    print(f"行:{row_data}")

输出结果为:

行索引:0
行:姓名    小明
年龄    18
成绩    90
Name: 0, dtype: object
行索引:1
行:姓名    小红
年龄    19
成绩    95
Name: 1, dtype: object
行索引:2
行:姓名    小华
年龄    20
成绩    80
Name: 2, dtype: object

3. 迭代器(itertuples())

除了以上两种方法,pandas还提供了itertuples()方法来遍历DataFrame。itertuples()返回一个迭代器,每次迭代返回一个包含行的所有列的元组。下面是示例代码:

import pandas as pd

data = {'姓名': ['小明', '小红', '小华'],
        '年龄': [18, 19, 20],
        '成绩': [90, 95, 80]}
df = pd.DataFrame(data)
for row in df.itertuples():
    print(row)

输出结果为:

Pandas(Index=0, 姓名='小明', 年龄=18, 成绩=90)
Pandas(Index=1, 姓名='小红', 年龄=19, 成绩=95)
Pandas(Index=2, 姓名='小华', 年龄=20, 成绩=80)

三、DataFrame遍历小结

以上介绍的三种遍历方式,在实际应用中都非常常用。按列遍历通常用于查找某一列的特定元素,按行遍历通常用于遍历所有数据或者进行条件判断,而迭代器则可以用于在遍历时同时访问行和列的值。

以上内容仅仅是pandas库中DataFrame遍历的冰山一角。在实际应用中,我们还需要考虑到DataFrame的大小、检索速度等因素,选择合适的遍历方式进行操作。希望本文内容能为读者提供一些思路和参考。