广告
返回顶部
首页 > 资讯 > 精选 >pandas.DataFrame的for循环迭代如何实现
  • 912
分享到

pandas.DataFrame的for循环迭代如何实现

2023-07-05 05:07:47 912人浏览 薄情痞子
摘要

本篇内容主要讲解“pandas.DataFrame的for循环迭代如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pandas.DataFrame的for循环迭代如何实现”吧!当使用for

本篇内容主要讲解“pandas.DataFrame的for循环迭代如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pandas.DataFrame的for循环迭代如何实现”吧!

    当使用for语句循环(迭代)pandas.DataFrame时,简单的使用for语句便可以取得返回列名,因此使用重复使用for方法,便可以获取每行的值。

    以下面的pandas.DataFrame为例。

    import pandas as pddf = pd.DataFrame({'age': [24, 42], 'state': ['NY', 'CA'], 'point': [64, 92]},                  index=['Alice', 'Bob'])print(df)#        age state  point# Alice   24    NY     64# Bob     42    CA     92

    在此对以下内容进行说明:

    • pandas.DataFrame for循环的应用

    • 逐列检索

      • DataFrame.iteritems()

    • 逐行检索

      • DataFrame.iterrows()

      • DataFrame.itertuples()

    • 检索特定列的值

    • 循环更新值

    pandas.DataFrame for循环的应用

    当pandas.DataFrame直接使用for循环时,按以下顺序获取列名(列名)。

    for column_name in df:    print(type(column_name))    print(column_name)    print('======\n')# <class 'str'># age# ======# # <class 'str'># state# ======# # <class 'str'># point# ======#

    调用方法__iter __()。

    for column_name in df.__iter__():    print(type(column_name))    print(column_name)    print('======\n')# <class 'str'># age# ======# # <class 'str'># state# ======# # <class 'str'># point# ======#

    逐列检索

    DataFrame.iteritems()

    使用iteritems()方法,您可以一一获取列名称(列名称)和元组(列名称,系列)的每个列的数据(pandas.Series类型)。

    pandas.Series可以通过指定索引名称等来检索行的值。

    for column_name, item in df.iteritems():    print(type(column_name))    print(column_name)    print('~~~~~~')    print(type(item))    print(item)    print('------')    print(item['Alice'])    print(item[0])    print(item.Alice)    print('======\n')# <class 'str'># age# ~~~~~~# <class 'pandas.core.series.Series'># Alice    24# Bob      42# Name: age, dtype: int64# ------# 24# 24# 24# ======# # <class 'str'># state# ~~~~~~# <class 'pandas.core.series.Series'># Alice    NY# Bob      CA# Name: state, dtype: object# ------# NY# NY# NY# ======# # <class 'str'># point# ~~~~~~# <class 'pandas.core.series.Series'># Alice    64# Bob      92# Name: point, dtype: int64# ------# 64# 64# 64# ======#

    逐行检索

    一次检索一行的方法包括iterrows()和itertuples()。 itertuples()更快。

    如果只需要特定列的值,则如下所述,指定列并将它们分别在for循环中进行迭代会更快。

    DataFrame.iterrows()

    通过使用iterrows()方法,可以获得每一行的数据(pandas.Series类型)和行名和元组(索引,系列)。

    pandas.Series可以通过指定列名等来检索列的值。

    for index, row in df.iterrows():    print(type(index))    print(index)    print('~~~~~~')    print(type(row))    print(row)    print('------')    print(row['point'])    print(row[2])    print(row.point)    print('======\n')# <class 'str'># Alice# ~~~~~~# <class 'pandas.core.series.Series'># age      24# state    NY# point    64# Name: Alice, dtype: object# ------# 64# 64# 64# ======# # <class 'str'># Bob# ~~~~~~# <class 'pandas.core.series.Series'># age      42# state    CA# point    92# Name: Bob, dtype: object# ------# 92# 92# 92# ======

    DataFrame.itertuples()

    使用itertuples()方法,可以一一获取索引名(行名)和该行数据的元组。元组的第一个元素是索引名称。

    默认情况下,返回一个名为Pandas的namedtuple。由于它是namedtuple,因此可以访问每个元素的值。

    for row in df.itertuples():    print(type(row))    print(row)    print('------')    print(row[3])    print(row.point)    print('======\n')# <class 'pandas.core.frame.Pandas'># Pandas(Index='Alice', age=24, state='NY', point=64)# ------# 64# 64# ======# # <class 'pandas.core.frame.Pandas'># Pandas(Index='Bob', age=42, state='CA', point=92)# ------# 92# 92# ======#

    如果参数name为None,则返回一个普通的元组。

    for row in df.itertuples(name=None):    print(type(row))    print(row)    print('------')    print(row[3])    print('======\n')# <class 'tuple'># ('Alice', 24, 'NY', 64)# ------# 64# ======# # <class 'tuple'># ('Bob', 42, 'CA', 92)# ------# 92# ======

    检索特定列的值

    上述的iterrows()和itertuples()方法可以检索每一行中的所有列元素,但是如果仅需要特定的列元素,可以使用以下方法。

    pandas.DataFrame的列是pandas.Series。

    print(df['age'])# Alice    24# Bob      42# Name: age, dtype: int64print(type(df['age']))# <class 'pandas.core.series.Series'>

    如果将pandas.Series应用于for循环,则可以按顺序获取值,因此,如果指定pandas.DataFrame列并将其应用于for循环,则可以按顺序获取该列中的值。

    for age in df['age']:    print(age)# 24# 42

    如果使用内置函数zip(),则可以一次收集多列值。

    for age, point in zip(df['age'], df['point']):    print(age, point)# 24 64# 42 92

    如果要获取索引(行名),使用index属性。如以上示例所示,可以与其他列一起通过zip()获得。

    print(df.index)# Index(['Alice', 'Bob'], dtype='object')print(type(df.index))# <class 'pandas.core.indexes.base.Index'>for index in df.index:    print(index)# Alice# Bobfor index, state in zip(df.index, df['state']):    print(index, state)# Alice NY# Bob CA

    循环更新值

    iterrows()方法逐行检索值,返回一个副本,而不是视图,因此更改pandas.Series不会更新原始数据。

    for index, row in df.iterrows():    row['point'] += row['age']print(df)#        age state  point# Alice   24    NY     64# Bob     42    CA     92

    at[]选择并处理原始DataFrame中的数据时更新。

    for index, row in df.iterrows():    df.at[index, 'point'] += row['age']print(df)#        age state  point# Alice   24    NY     88# Bob     42    CA    134

    有关at[]的文章另请参考以下连接。

    Pandas获取和修改任意位置的值(at,iat,loc,iloc)

    请注意,上面的示例使用at[]只是一个示例,在许多情况下,有必要使用for循环来更新元素或基于现有列添加新列,for循环的编写更加简单快捷。

    与上述相同的处理。上面更新的对象被进一步更新。

    df['point'] += df['age']print(df)#        age state  point# Alice   24    NY    112# Bob     42    CA    176

    可以添加新列。

    df['new'] = df['point'] + df['age'] * 2print(df)#        age state  point  new# Alice   24    NY    112  160# Bob     42    CA    176  260

    除了简单的算术运算之外,NumPy函数还可以应用于列的每个元素。以下是平方根的示例。另外,这里,NumPy的功能可以通过pd.np访问,但是,当然可以单独导入NumPy。

    df['age_sqrt'] = pd.np.sqrt(df['age'])print(df)#        age state  point  new  age_sqrt# Alice   24    NY    112  160  4.898979# Bob     42    CA    176  260  6.480741

     对于字符串,提供了用于直接处理列(系列)的字符串方法。下面是转换为小写并提取第一个字符的示例。

    df['state_0'] = df['state'].str.lower().str[0]print(df)#        age state  point  new  age_sqrt state_0# Alice   24    NY    112  160  4.898979       n# Bob     42    CA    176  260  6.480741       c

    到此,相信大家对“pandas.DataFrame的for循环迭代如何实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: pandas.DataFrame的for循环迭代如何实现

    本文链接: https://www.lsjlt.com/news/349681.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • pandas.DataFrame的for循环迭代如何实现
      本篇内容主要讲解“pandas.DataFrame的for循环迭代如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pandas.DataFrame的for循环迭代如何实现”吧!当使用for...
      99+
      2023-07-05
    • pandas.DataFrame的for循环迭代的实现
      目录pandas.DataFrame for循环的应用逐列检索DataFrame.iteritems()逐行检索DataFrame.iterrows()DataFrame.itert...
      99+
      2023-02-22
      pandas DataFrame for循环 pandas DataFrame for
    • Golang函数的for循环迭代器用法
      作为一门具有高效性和高并发性的编程语言,Golang在函数的设计和实现上面有很多值得我们学习的地方。其中,for循环迭代器的使用就是Golang函数中一个重要的特性。本文将会从以下几个方面来详细介绍Golang函数的for循环迭代器用法。一...
      99+
      2023-05-17
      函数 Golang for循环
    • 详解Python中for循环的定义迭代方法
      目录Python的 for 循环遍历字典range()功能break语句 和continue语句else语句Python的 for 循环 Python 是基于集合的迭代。 for &...
      99+
      2022-11-10
    • PHP如何实现for循环
      这篇文章主要为大家展示了“PHP如何实现for循环”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP如何实现for循环”这篇文章吧。for循环:如果已经提前确定脚本运行的次数,可以使用for循...
      99+
      2023-06-17
    • Java如何实现for循环
      这篇文章将为大家详细讲解有关Java如何实现for循环,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。public class ForStatement {public&nbs...
      99+
      2023-06-02
    • java中迭代器和for循环的优劣势有哪些
      这篇文章给大家分享的是有关java中迭代器和for循环的优劣势有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实...
      99+
      2023-06-14
    • JavaScript如何实现for循环累加
      今天小编给大家分享一下JavaScript如何实现for循环累加的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
      99+
      2022-10-19
    • 在matlab中如何实现for循环
      这篇文章主要介绍“在matlab中如何实现for循环”,在日常操作中,相信很多人在在matlab中如何实现for循环问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在matlab中如何实现for循环”的疑惑有所...
      99+
      2023-06-21
    • Python中while无限迭代循环怎么实现
      这篇文章主要讲解了“Python中while无限迭代循环怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中while无限迭代循环怎么实现”吧!前言Python 有 whil...
      99+
      2023-06-30
    • Java迭代器双重循环如何写
      在Java中,可以使用嵌套循环来实现迭代器的双重循环。下面是一个示例代码:javaList matrix = new ArrayLi...
      99+
      2023-10-18
      Java
    • C语言中如何实现for循环
      这篇文章主要介绍“C语言中如何实现for循环”,在日常操作中,相信很多人在C语言中如何实现for循环问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中如何实现for循环”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-17
    • python中如何实现for循环赋值
      这篇文章主要介绍了python中如何实现for循环赋值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。For循环赋值前提条件:我创建了一个road类,这个类里面有这些属性。我先...
      99+
      2023-06-15
    • python的切片实例可代替for循环
      #!/usr/bin/env python3 # -*- coding: utf-8 -*- L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] print('L[0:3] =', L[0:...
      99+
      2023-01-31
      切片 实例 python
    • Python的while循环和for循环如何使用
      本文小编为大家详细介绍“Python的while循环和for循环如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python的while循环和for循环如何使用”文章能帮助大家解决疑惑,下面跟着小编...
      99+
      2022-10-19
    • js如何使用for循环实现求和
      这篇文章主要介绍了js如何使用for循环实现求和,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用for循环,累加求和function sum(arr) ...
      99+
      2023-06-17
    • go语言如何实现for循环翻转
      go语言实现for循环翻转的方法有:1、使用切片进行翻转,将要翻转的元素添加到一个切片中,然后使用for循环按相反的顺序访问切片中的元素即可;2、使用双指针进行翻转,使用两个指针,一个指向切片的第一个元素,另一个指向最后一个元素,并交换它们...
      99+
      2023-07-10
    • Python 如何用一行代码实现for循环初始化数组
      我就废话不多说了,大家还是直接看代码吧~ # 用一行代码实现for循环初始化数组 o = 10 b = [ o + u for u in range( 10 ) ] print...
      99+
      2022-11-11
    • 如何在Linux中shell编程实现for循环
      今天就跟大家聊聊有关如何在Linux中shell编程实现for循环,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、常用for循环结构#语法一for 变量 in&...
      99+
      2023-06-09
    • 在matlab中实现for循环的方法
      简单for循环 for循环用来循环处理数据。 例:输出1~100的和 >> clear >> sum = 0; >> for i = 1:10...
      99+
      2022-11-12
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作