在 Pandas 中,该如何遍历 DataFrame 的第一列,下面为你详细介绍几种常见的方法。
示例数据
首先,我们创建一个示例 DataFrame 用于后续的演示:
import pandas as pd
data = {
'col1': [10, 20, 30, 40, 50],
'col2': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(data)方法一:使用 for 循环遍历 Series
可以直接通过列名获取 DataFrame 的第一列(它是一个 Series 对象),然后使用 for 循环遍历这个 Series。
for value in df['col1']:
print(value)
方法二:使用 iterrows() 方法
iterrows() 方法会将 DataFrame 按行迭代,返回一个包含行索引和行数据的元组,我们可以从中提取第一列的值。
import pandas as pd
data = {
'col1': [10, 20, 30, 40, 50],
'col2': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(data)
print('原dataframe:',df)
for index,row in df.iterrows():
print(row['col1'])
方法三:使用 itertuples() 方法
itertuples() 方法也是按行迭代 DataFrame,但它返回的是 namedtuple 对象,访问列数据时可以通过列名或者索引。
import pandas as pd
data = {
'col1': [10, 20, 30, 40, 50],
'col2': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(data)
print('原dataframe:',df)
for row in df.itertuples():
print(row.col1)
# 也可以通过索引访问,索引从 1 开始,因为第 0 个位置是行索引
print(row[1])
方法四:使用 apply() 方法
apply() 方法可以对 DataFrame 的某一列或所有列应用一个函数,这里我们可以定义一个简单的函数来处理第一列的值。
import pandas as pd
def print_value(value):
print(value)
data = {
'col1': [10, 20, 30, 40, 50],
'col2': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(data)
print('原dataframe:',df)
df['col1'].apply(print_value)
df['col2'].apply(print_value)
方法比较
- 使用
for循环遍历Series:代码简洁,适用于简单的遍历操作,性能相对较好。 - 使用
iterrows()方法:可以同时获取行索引和行数据,但性能相对较差,因为它会返回一个新的Series对象,且在大数据集上迭代速度较慢。 - 使用
itertuples()方法:性能比iterrows()好,因为它返回的是namedtuple对象,内存占用少,迭代速度快。 - 使用
apply()方法:可以对列数据进行更复杂的操作,通过定义不同的函数来实现不同的功能,但在简单遍历场景下略显繁琐,但是如果在要在遍历的过程中,实现更加复杂的功能,可以使用apply()。










