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)
相关推荐
天上掉下来个程小白3 分钟前
案例-14.文件上传-简介
数据库·spring boot·后端·mybatis·状态模式
xinxiyinhe8 分钟前
如何设置Cursor中.cursorrules文件
人工智能·python
哆木12 分钟前
排查生产sql查询缓慢
数据库·sql·mysql
诸神缄默不语34 分钟前
如何用Python 3自动打开exe程序
python·os·subprocess·python 3
橘子师兄1 小时前
分页功能组件开发
数据库·python·django
Logintern091 小时前
使用VS Code进行Python编程的一些快捷方式
开发语言·python
Multiple-ji1 小时前
想学python进来看看把
开发语言·python
book01212 小时前
MySql数据库运维学习笔记
运维·数据库·mysql
纠结哥_Shrek2 小时前
Oracle和Mysql的区别
数据库·mysql·oracle
极客先躯2 小时前
说说高级java每日一道面试题-2025年2月13日-数据库篇-请说说 MySQL 数据库的锁 ?
java·数据库·mysql·数据库的锁·模式分·粒度分·属性分