在 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()。