迭代 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 pddf = 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]].valuesprint(df)