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)
相关推荐
范纹杉想快点毕业2 分钟前
《嵌入式硬件从入门到精通:电源 / 模电 / 数电 / 通信核心全解析》
java·开发语言·数据库·单片机·嵌入式硬件
Hello 0 123 分钟前
视频号直播视频录制
python·音视频·流媒体·直播视频录制
FreeCode26 分钟前
LangSmith本地部署LangGraph应用
python·langchain·agent
mit6.8241 小时前
py期中实验选题:实现天气预测
python·算法
Rolei_zl1 小时前
AIGC(生成式AI)试用 41 -- 程序(Python + OCR)-3
python·aigc
eybk1 小时前
使用Beeware开发文件浏览器获取Android15的文件权限
python
q***4642 小时前
离线安装 Nginx
运维·数据库·nginx
我科绝伦(Huanhuan Zhou)2 小时前
SQL进阶必备:从计算字段到多表联结,让查询效率翻倍!
数据库·sql
柒柒钏2 小时前
VSCode 终端配置与 Python 虚拟环境使用指南
ide·vscode·python
环己酮2 小时前
py数据科学学习笔记day4-空间数据统计分析与可视化(2)
python