【Python】DataFrame遍历

      在数据分析的过程中,往往需要用到DataFrame的类型,因为这个类型就像EXCEL表格一样,便于我们个中连接、计算、统计等操作。在数据分析的过程中,避免不了的要对数据进行遍历,那么,DataFrame如何遍历呢?之前,小白每次使用时都是Google或百度,想想,还是总结一下~

      小白经常用到的有三种方式,如下:

首先,先读入一个DataFrame

import pandas as pd
#读入数据
df = pd.read_table('d:/Users/chen_lib/Desktop/tmp.csv',sep=',', header='infer')
df.head()

-----------------result------------------
        mas  effectdate	 num
0	371379	2019-07-15	361
1	344985	2019-07-13	77
2	425090	2019-07-01	105
3	344983	2019-02-19	339
4	432430	2019-02-21	162

1.DataFrame.iterrows()

       将DataFrame的每一行迭代为{索引,Series}对,对DataFrame的列,用row['cols']读取元素

for index, row in df.iterrows():
    print(index,row['mas'],row['num']) 



------------result---------------
0 371379 361
1 344985 77
2 425090 105
3 344983 339
4 432430 162

从结果可以看出,第一列就是对应的index,也就是索引,从0开始,第二第三列是自定义输出的列,这样就完成了对DataFrame的遍历。

2.DataFrame.itertuples()

       将DataFrame的每一行迭代为元祖,可以通过row['cols']对元素进行访问,方法一效率高。

for row in df.itertuples():
    print(getattr(row, 'mas'), getattr(row, 'num')) # 输出每一行


-------------result-----------------
371379 361
344985 77
425090 105
344983 339
432430 162

从结果可以看出,这种方法是没有index的,直接输出每一行的结果。

3.DataFrame.iteritems()

     这种方法和上面两种不同,这个是按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row['cols']对元素进行访问。

for index, row in df.iteritems():
    print(index,row[0],row[1],row[2])


-------------result------------------
masterhotelid 371379 344985 425090
effectdate 2019-07-15 2019-07-13 2019-07-01
quantity 361 77 105

从结果可以看出,index输出的是列名,row是用来读取第几行的数据,结果是按列展示

       以上就是小白经常用到的遍历DataFrame的方法啦,欢迎大家补充哦~

  • 28
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: PythonDataFrame遍历可以使用for循环和apply函数来实现。 1. for循环遍历DataFrame 可以使用for循环遍历DataFrame的每一行数据,示例代码如下: ```python import pandas as pd # 创建DataFrame data = {'name': ['Tom', 'Jerry', 'Mike'], 'age': [20, 25, 30]} df = pd.DataFrame(data) # 遍历DataFrame for index, row in df.iterrows(): print(row['name'], row['age']) ``` 输出结果为: ``` Tom 20 Jerry 25 Mike 30 ``` 2. apply函数遍历DataFrame apply函数可以对DataFrame的每一行或每一列进行操作,示例代码如下: ```python import pandas as pd # 创建DataFrame data = {'name': ['Tom', 'Jerry', 'Mike'], 'age': [20, 25, 30]} df = pd.DataFrame(data) # 定义函数 def print_row(row): print(row['name'], row['age']) # 使用apply函数遍历DataFrame df.apply(print_row, axis=1) ``` 输出结果为: ``` Tom 20 Jerry 25 Mike 30 ``` 其,axis=1表示对每一行进行操作,axis=表示对每一列进行操作。 ### 回答2: 在Python,Pandas库的DataFrame是非常重要的数据结构之一。DataFrame是一个二维的表格型数据结构,可以用于处理大部分结构化数据。而DataFrame遍历则是在处理DataFrame数据时非常常见的操作之一。 基本的DataFrame遍历方法有两种,一种是逐行遍历,一种是逐列遍历。 逐行遍历: 对于每一行 DataFrame 的数据,使用iterrows()方法可以逐行遍历DataFrame,并返回每行数据的 index 和 value。 例如: ``` import pandas as pd df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}) for index, row in df.iterrows(): print(index, row['name'], row['age']) ``` 输出结果为: ``` 0 Alice 25 1 Bob 30 2 Charlie 35 ``` 在遍历的过程,使用row[‘column_name’]的形式即可取出每列的元素。 逐列遍历: 使用 DataFrame.columns 和 df[column_name] 可以逐列遍历DataFrame。 例如: ``` import pandas as pd df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}) for column in df.columns: print(df[column]) ``` 输出结果为: ``` 0 Alice 1 Bob 2 Charlie Name: name, dtype: object 0 25 1 30 2 35 Name: age, dtype: int64 ``` 在遍历的过程,直接使用 df[column_name] 即可取出每列的元素。 当然,对于DataFrame数据的遍历方式,可以根据实际需求进行调整和变化,比如可以使用 apply() 方法对DataFrame进行函数操作,使用 iteritems() 遍历列并在列使用 DataFrame 进行函数操作。 总之,DataFrame遍历是数据处理过程必不可少的一步,在实际应用要多多掌握DataFrame遍历方法,为数据分析和处理提供便利。 ### 回答3: pandas DataFrame是数据分析广泛使用的一种数据结构。遍历DataFrame是日常操作经常用到的功能。本文尝试对Python DataFrame遍历进行详细介绍。 DataFrame的结构 DataFrame像是由多个Series构成的二维表格,每个Series代表着一列。DataFrame可以通过传入一个二维数组,或多个Series并指定列名的方式来创建。DataFrame的每一行都是由索引值和数据组成的。 DataFrame遍历方式 对于DataFrame遍历,主要有以下几种方式: 1. 迭代行 使用iterrows()方法可以迭代DataFrame的每一行,返回一个元组,第一个元素是行索引,第二个元素是一个Series对象。例如: ```python import pandas as pd df = pd.DataFrame({'a': [1, 2], 'b': [3, 4]}) for index, row in df.iterrows(): print(index, row['a'], row['b']) ``` 输出结果: ``` 0 1 3 1 2 4 ``` 2. 迭代列 使用iteritems()方法可以迭代DataFrame的每一列,返回一个元组,第一个元素是列名,第二个元素是一个Series对象。例如: ```python import pandas as pd df = pd.DataFrame({'a': [1, 2], 'b': [3, 4]}) for column, series in df.iteritems(): print(column, series) ``` 输出结果: ``` a 0 1 1 2 Name: a, dtype: int64 b 0 3 1 4 Name: b, dtype: int64 ``` 3. 迭代元素 使用itertuples()方法可以迭代DataFrame的每一个元素,返回一个命名元组,包含了每行的索引和列值。例如: ```python import pandas as pd df = pd.DataFrame({'a': [1, 2], 'b': [3, 4]}) for row in df.itertuples(): print(row.Index, row.a, row.b) ``` 输出结果: ``` 0 1 3 1 2 4 ``` 4. 直接访问 DataFrame可以像访问列表一样访问每一个元素。例如: ```python import pandas as pd df = pd.DataFrame({'a': [1, 2], 'b': [3, 4]}) print(df['a'][0]) # 输出 1 ``` 这种方法虽然简便,但不推荐使用,因为它的性能不如其他方法好。 总结 在日常的Python编程DataFrame遍历是常见的需求。本文详细介绍了DataFrame的迭代行、迭代列、迭代元素以及直接访问四种遍历方式。具体采用哪种方式,取决于具体场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值