迭代 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)