Pandas教程之十八:迭代 Pandas DataFrame 中的行和列

迭代 Pandas DataFrame 中的行和列

迭代是一个通用术语,表示逐个获取某事物的每个项。Pandas DataFrame 由行和列组成,因此,要迭代数据框,我们必须像迭代字典一样迭代数据框。在字典中,我们迭代对象的键,就像在数据框中迭代一样。

在本文中,我们使用"nba.csv"

Pandas 迭代 DataFrame 中的行和列

在 Pandas Dataframe 中,我们可以通过两种方式迭代元素:

  • 迭代行
  • 遍历列

使用 Pandas 迭代行

为了迭代行,我们可以使用三个函数 iteritems()、iterrows()、itertuples()。这三个函数将有助于迭代行。以下是我们可以迭代行的方法:

  • 使用 iterrows() 迭代行
  • 使用 iteritems() 对行进行迭代
  • 使用 itertuples() 对行进行迭代

使用 iterrows() 在 Pandas 中迭代行

示例 1:使用 iterrows() 进行行迭代

为了迭代行,我们应用 iterrows() 函数,该函数返回每个索引值以及包含每行数据的系列。

Python

importing pandas as pd

import pandas as pd

dictionary of lists

dict = {'name': ["aparna", "pankaj", "sudhir", "Geeku"],

'degree': ["MBA", "BCA", "M.Tech", "MBA"],

'score': [90, 40, 80, 98]}

creating a dataframe from a dictionary

df = pd.DataFrame(dict)

print(df)

现在我们应用 iterrows() 函数来获取每行元素。

Python

importing pandas as pd

import pandas as pd

dictionary of lists

dict = {'name': ["aparna", "pankaj", "sudhir", "Geeku"],
'degree': ["MBA", "BCA", "M.Tech", "MBA"],
'score': [90, 40, 80, 98]}

creating a dataframe from a dictionary

df = pd.DataFrame(dict)

iterating over rows using iterrows() function

for i, j in df.iterrows():
print(i, j)
print()

输出:

示例 2:使用 iterrows() 获取行中的每个元素

在此示例中,我们使用初始数据可视化的方法显示 DataFrame 的前三行head(3)。

Python

importing pandas module

import pandas as pd

making data frame from csv file

data = pd.read_csv("nba.csv")

for data visualization we filter first 3 datasets

data.head(3)

现在我们应用 iterrows 来获取数据框中行的每个元素

Python

import pandas as pd

making data frame from csv file

data = pd.read_csv("nba.csv")

for i, j in data.iterrows():
print(i, j)
print()

输出:

使用 iteritems() 对行进行迭代

示例 1:使用 iteritems() 进行行迭代

为了遍历行,我们使用 iteritems() 函数,该函数以每列作为键、以标签作为键的值对、以列作为 Series 对象进行迭代。

Python

importing pandas as pd

import pandas as pd

dictionary of lists

dict = {'name': ["aparna", "pankaj", "sudhir", "Geeku"],
'degree': ["MBA", "BCA", "M.Tech", "MBA"],
'score': [90, 40, 80, 98]}

creating a dataframe from a dictionary

df = pd.DataFrame(dict)

print(df)

现在我们应用 iteritems() 函数来检索数据框的行。

Python

importing pandas as pd

import pandas as pd

dictionary of lists

dict = {'name': ["aparna", "pankaj", "sudhir", "Geeku"],

'degree': ["MBA", "BCA", "M.Tech", "MBA"],

'score': [90, 40, 80, 98]}

creating a dataframe from a dictionary

df = pd.DataFrame(dict)

using iteritems() function to retrieve rows

for key, value in df.iteritems():

print(key, value)

print()

输出:

示例 2:使用 iteritems() 获取行中的每个元素

在此示例中,我们使用初始数据可视化的方法显示 DataFrame 的前三行head(3)。

Python

importing pandas module

import pandas as pd

making data frame from csv file

data = pd.read_csv("nba.csv")

for data visualization we filter first 3 datasets

data.head(3)

输出:

现在我们应用 iteritems() 来从数据框中检索行

Python

importing pandas module

import pandas as pd

making data frame from csv file

data = pd.read_csv("nba.csv")

for key, value in data.iteritems():

print(key, value)

print()

输出:

使用 itertuples() 对行进行迭代

示例 1:使用 itertuples() 进行行迭代

为了遍历行,我们应用函数 itertuples(),该函数为 DataFrame 中的每一行返回一个元组。元组的第一个元素将是行对应的索引值,而其余值是行值。

Python

importing pandas as pd

import pandas as pd

dictionary of lists

dict = {'name': ["aparna", "pankaj", "sudhir", "Geeku"],

'degree': ["MBA", "BCA", "M.Tech", "MBA"],

'score': [90, 40, 80, 98]}

creating a dataframe from a dictionary

df = pd.DataFrame(dict)

print(df)

现在我们应用 itertuples() 函数来获取每一行的元组

Python

importing pandas as pd

import pandas as pd

dictionary of lists

dict = {'name': ["aparna", "pankaj", "sudhir", "Geeku"],

'degree': ["MBA", "BCA", "M.Tech", "MBA"],

'score': [90, 40, 80, 98]}

creating a dataframe from dictionary

df = pd.DataFrame(dict)

using a itertuples()

for i in df.itertuples():

print(i)

输出:

示例 2:使用 itertuples() 获取行中的每个元素

在此示例中,我们使用初始数据可视化的方法显示 DataFrame 的前三行head(3)。

Python

importing pandas module

import pandas as pd

making data frame from csv file

data = pd.read_csv("nba.csv")

for data visualization we filter first 3 datasets

data.head(3)

现在我们应用 itertuples() 来获取每行的元组

Python

importing pandas module

import pandas as pd

making data frame from csv file

data = pd.read_csv("nba.csv")

for i in data.itertuples():

print(i)

输出:

Pandas 迭代 DataFrame 的列

示例 1:Pandas 列迭代

为了迭代列,我们需要创建一个数据框列的列表,然后迭代该列表以提取数据框列。

Python

importing pandas as pd

import pandas as pd

dictionary of lists

dict = {'name': ["aparna", "pankaj", "sudhir", "Geeku"],

'degree': ["MBA", "BCA", "M.Tech", "MBA"],

'score': [90, 40, 80, 98]}

creating a dataframe from a dictionary

df = pd.DataFrame(dict)

print(df)

现在我们遍历列,为了遍历列,我们首先创建一个数据框列的列表,然后遍历列表。

Python

creating a list of dataframe columns

columns = list(df)

for i in columns:

printing the third element of the column

print(df[i][2])

输出:

示例 2:在 Pandas Python 中迭代行

在此示例中,我们使用初始数据可视化的方法显示 DataFrame 的前三行head(3)。

Python

importing pandas module

import pandas as pd

making data frame from csv file

data = pd.read_csv("nba.csv")

for data visualization we filter first 3 datasets

col = data.head(3)

col

现在我们迭代 CSV 文件中的列,为了迭代列,我们创建一个数据框列的列表并迭代列表

Python

creating a list of dataframe columns

clmn = list(col)

for i in clmn:

printing a third element of column

print(col[i][2])

输出

迭代 Pandas DataFrame 中的行和列 -- 常见问题解答

如何遍历 Pandas DataFrame 中的行和列?

要迭代行,可以使用该 iterrows() 方法,它将索引和行作为一个系列产生:

复制代码
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3]
    'B': [4, 5, 6]
})

for index, row in df.iterrows():
    print(f"Index: {index}, Row: {row['A'], row['B']}")

要迭代列,您只需循环遍历 DataFrame:

复制代码
for column in df:
    print(f"Column: {column}, Data: {df[column]}")

如何在 Pandas DataFrame 中交换行和列?

要转置行和列并有效地交换它们,请使用以下 T 属性或 transpose() 方法:

复制代码
df_transposed = df.T
print(df_transposed)

如何访问 Pandas DataFrame 中的行和列?

要通过标签访问行和列,请使用 loc

复制代码
# Access a specific row by index label
row = df.loc[0]

# Access a specific column
column = df.loc[:, 'A']
print(row, column)

要通过整数位置访问,请使用 iloc

复制代码
# Access a specific row by integer position
row = df.iloc[0]

# Access a specific column by integer position
column = df.iloc[:, 0]
print(row, column)

如何在 Python 中对 DataFrame 进行转置?

您可以使用以下属性转置 DataFrame T

复制代码
transposed_df = df.T
print(transposed_df)

如何在 Python 中交换 DataFrame 中的两行?

要交换 DataFrame 中的两行,可以使用简单的行分配 .loc

复制代码
# Sample data
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# Swap rows 0 and 2
df.loc[[0, 2]] = df.loc[[2, 0]].values

print(df)
相关推荐
程序猿小D2 分钟前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的电影小说网站管理系统,推荐!
java·数据库·mysql·spring·毕业设计·ssm框架·电影小说网站
羊小猪~~8 分钟前
数据库学习笔记(十七)--触发器的使用
数据库·人工智能·后端·sql·深度学习·mysql·考研
摸爬滚打李上进26 分钟前
重生学AI第十六集:线性层nn.Linear
人工智能·pytorch·python·神经网络·机器学习
背太阳的牧羊人1 小时前
Neo4j 的向量搜索(Neo4jVector)和常见的向量数据库(比如 Milvus、Qdrant)之间的区别与联系
数据库·neo4j·milvus
liulun1 小时前
在浏览器中使用SQLite(官方sqlite3.wasm)
数据库·sqlite·wasm
凛铄linshuo2 小时前
爬虫简单实操2——以贴吧为例爬取“某吧”前10页的网页代码
爬虫·python·学习
牛客企业服务2 小时前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
胡斌附体2 小时前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
IT项目管理2 小时前
达梦数据库DMHS介绍及安装部署
linux·数据库
你都会上树?2 小时前
MySQL MVCC 详解
数据库·mysql