pandas遍历dataframe的几种方法

本文介绍了三种在Pandas中遍历DataFrame的有效方法:1. 使用iterrows()结合for循环遍历;2. 使用applymap()函数遍历并处理DataFrame中的每一个元素;3. 利用itertuples()按行迭代DataFrame。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在pandas中dataframe可以一维格式化的二维数据,是一个很清晰数据表, 那你知道如何遍历这个数据表吗?本文介绍pandas遍历dataframe方法:1、使用df.iterrows()获取可迭代对象, 然后使用for循环遍历;2、使用applymap()函数遍历dataframe所有元素;3、按行遍历迭代成元组。

方法一:使用df.iterrows()获取可迭代对象, 然后使用for循环遍历即可

for index, row in df.iterrows():

  print(index, row)

方法二:使用applymap()函数遍历dataframe所有元素

可以对DataFrame里的每个值进行处理,然后返回一个新的DataFrame

import pandas as pd

df = pd.DataFrame({

'a': [1, 2, 3],

'b': [10, 20, 30],

'c': [5, 10, 15]

})

def add_one(x):

return x + 1

print df.applymap(add_one)

a b c

0 2 11 6

1 3 21 11

2 4 31 16

方法三:按行遍历迭代成元组

for row in Temp.itertuples():

    print(row)

  

[Out]:  

Pandas(Index=0, Flag='No', Open=None, Close=None, Position=100)

Pandas(Index=2, Flag='No', Open=None, Close=None, Position=100)

访问

getattr(row,'Index')

Out[31]: 2

  

getattr(row,'Position')

Out[27]: 100
当我们在处理 `pandas.DataFrame` 数据时,有时会遇到需要逐列而不是逐行遍历的需求。以下是几种常见的方法来进行逐列遍历的操作: ### 直接通过字典式的键访问 由于每列都可以被视为一个 Series 对象,并且可以直接像字典一样按名称引用它们,因此最简单的方式就是利用这一特性: ```python import pandas as pd # 示例 DataFrame 初始化 data = { 'A': [1, 2, 3], 'B': ['x', 'y', 'z'], } df = pd.DataFrame(data) for column_name in df.columns: print(f"Column {column_name}:") for value in df[column_name]: print(value) ``` 这种方式非常适合那些只需要读取各列内容而不涉及复杂变换的任务。 ### 应用 apply 或 map 方法 对于一些更复杂的场景,比如你想要将某个函数应用于某一列的所有元素上,那么就可以使用 `apply()` 或者 `map()` 函数了: ```python def process_column(column): return f"{str(column).upper()} PROCESSED" for col in df.select_dtypes(include=[object]).columns.tolist(): # 只选取非数值类型的列应用此转换规则作为演示 df[col] = df[col].apply(process_column) # 将自定义的字符串大写并加前缀后返回 print(df) ``` 上述代码片段展示了如何仅针对特定类型(这里是 object 类型)的应用程序进行操作;当然,也可以去掉筛选条件对所有列都实施相同的变更动作。 此外还可以考虑使用列表推导式来简化某些简单的映射任务: ```python [df['A'].map(lambda x : x * 2)] ``` 这些方法提供了灵活性,在面对不同类型的数据处理需求时都能找到合适的解决方案。无论你是想单纯查看数据还是对其进行各种形式的修改,掌握这些技巧都会让你事半功倍!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值