pandas 获取Dataframe元素值的几种方法

本文详细介绍Pandas库中DataFrame的遍历方法,包括按行、按列遍历,以及如何选择特定列和元素。涵盖了at、iat、loc、iloc等函数的用法,为数据处理和分析提供实用技巧。

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

可以通过遍历的方法:
pandas按行按列遍历Dataframe的几种方式:https://blog.youkuaiyun.com/sinat_29675423/article/details/87972498

选择列

使用类字典属性,返回的是Series类型
data[‘w’]
遍历Series

        for index in data['w'] .index:
            time_dis = data['w'] .get(index)

pandas.DataFrame.at

根据行索引和列名,获取一个元素的值

>>> df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [10, 20, 30]],
...                   columns=['A', 'B', 'C'])
>>> df
    A   B   C
0   0   2   3
1   0   4   1
2  10  20  30
>>> df.at[4, 'B']
2

或者

>>> df.iloc[5].at['B']
4

pandas.DataFrame.iat

根据行索引和列索引获取元素值

>>> df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [10, 20, 30]],
...                   columns=['A', 'B', 'C'])
>>> df
    A   B   C
0   0   2   3
1   0   4   1
2  10  20  30
>>> df.iat[1, 2]
1

或者

>>> df.iloc[0].iat[1]
2

pandas.DataFrame.loc

选取元素,或者行

>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
...      index=['cobra', 'viper', 'sidewinder'],
...      columns=['max_speed', 'shield'])
>>> df
            max_speed  shield
cobra               1       2
viper               4       5
sidewinder          7       8

选取元素

>>> df.loc['cobra', 'shield']
2

选取行返回一个series

>>> df.loc['viper']
max_speed    4
shield       5
Name: viper, dtype: int64

选取行列返回dataframe

>>> df.loc[['viper', 'sidewinder']]
            max_speed  shield
viper               4       5
sidewinder          7       8

pandas.DataFrame.iloc

>>> mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},
...           {'a': 100, 'b': 200, 'c': 300, 'd': 400},
...           {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
>>> df = pd.DataFrame(mydict)
>>> df
      a     b     c     d
0     1     2     3     4
1   100   200   300   400
2  1000  2000  3000  4000

按索引选取元素

>>> df.iloc[0, 1]
2

获取行的series

>>> type(df.iloc[0])
<class 'pandas.core.series.Series'>
>>> df.iloc[0]
a    1
b    2
c    3
d    4
Name: 0, dtype: int64
<think>好的,用户想知道如何用Pandas获取DataFrame或Series的元素。首先,我需要回忆Pandas中常用的数据访问方法。记得有几种方式,比如使用loc、iloc、at、iat,还有直接通过名和索引。 先处理Series的情况。Series是一维的,所以用户可能通过索引位置或索引标签来获取。比如s.iloc[0]或者s['label']。然后是DataFrame,二维结构,需要行信息。loc和iloc主要基于标签和位置,而at和iat用于快速访问标量,效率更高。 然后要检查用户的引用资料,确保回答符合提供的资料内容。引用[2]提到了df.iloc[5].at['B']和iat,说明这些方法适用。引用[3]中的Series示例显示可以通过索引访问,比如data[0]。引用[4]中提到了pop和insert,可能涉及操作,但用户的问题是关于获取元素,所以可能需要强调loc/iloc和at/iat的区别。 需要分点回答,结构清晰。先讲Series,再讲DataFrame。每种数据结构下,出不同的方法,比如位置索引、标签索引、布尔索引等。同时,要注意提到这些方法的适用场景,比如at和iat适用于快速访问单个元素,而loc和iloc适合范围或条件筛选。 可能还需要提到布尔索引,比如通过条件筛选数据,这在引用中没有提到,但属于常见操作,应该包含进去。例如df[df['A'] > 0]可以获取符合条件的行。 还要注意示例代码的正确性,比如使用正确的语法,比如逗号分隔行,或者使用条件表达式。确保用户能复制代码直接运行测试。 最后,生成相关问题,可能涉及不同方法的区别、性能比较、处理缺失等。这些问题需要基于回答内容,帮助用户进一步学习。</think>### 使用Pandas获取DataFrame或Series元素方法 #### 1. **Series元素获取** - **通过位置索引**:使用`iloc`方法,传入整数位置。例如: ```python import pandas as pd s = pd.Series([1, 3, 5, 7], index=['a', 'b', 'c', 'd']) print(s.iloc[0]) # 输出第一个元素:1 ``` - **通过标签索引**:直接使用`[]`或`loc`方法。例如: ```python print(s['a']) # 输出标签为'a'的元素:1 print(s.loc['b']) # 输出标签为'b'的元素:3 ``` #### 2. **DataFrame元素获取** - **通过行、标签**:使用`loc`方法指定行和标签。例如: ```python df = pd.DataFrame({'A': [1, 2, 3], 'B': ['x', 'y', 'z']}, index=['row1', 'row2', 'row3']) print(df.loc['row1', 'A']) # 输出行标签为'row1'、标签为'A'的:1 [^2] ``` - **通过行、位置**:使用`iloc`方法传入整数位置。例如: ```python print(df.iloc[0, 1]) # 输出第0行、第1:'x' ``` - **快速访问单个**:使用`at`(标签)或`iat`(位置)方法,适用于高效访问单个元素。例如: ```python print(df.at['row2', 'B']) # 输出行标签'row2'、标签'B'的:'y' [^2] print(df.iat[1, 1]) # 输出第1行、第1:'y' ``` - **通过条件筛选**:使用布尔表达式筛选数据。例如: ```python print(df[df['A'] > 1]) # 输出'A'中大于1的所有行 ``` #### 3. **对比与选择** - `loc`和`iloc`适用于范围或条件查询,而`at`/`iat`适合单高效访问。 - 直接通过获取数据:`df['A']`返回Series类型,可进一步用索引操作。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值