pandas 选择某行或者某列元素

目录

最少必要知识

选择某行或某列元素
有三种思路:
- 依据属性名
- 利用行号,或者列号
- 依据条件构建boolear variable

背景

import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.randint(low=1,high=4,size=(2,3)), columns=["a","b","c"])

选择某列元素

caseI: 选择一列元素

得到的是一个series对象
依据属性名选择

acol = df['a'] ##选择a属性列
columnName = acol.name 

依据下标选择

acol=df.iloc[:,0]

caseII: 选择多列元素

利用属性名
语法:multiCol = df[list]

abcol = df[["a","b"]] ##wayI: list
abcol = df.loc[:, ["a","b"]] ##wayII, 利用loc

利用下标

abcol = df.iloc[:, [0,1]] ##wayIII, 利用iloc
abcol = df.iloc[:, [0:1]] ##wayIV, 利用iloc

选择某行元素

caseI: 选择某行元素

核心思想:依据行号选择

r1 = df[0:1]

caseII: 选择 满足条件的哪些行

核心思路:先构建条件,得到boolean变量
stepI: 构建条件

condition1 = df["a"]==1
condition2 = df["b"]>=2
conditoon3 = condition1 & condition2

stepII:依据条件选择

subdf = df[condition1]
subdf = df[condition3]

参考资料

https://chrisalbon.com/python/data_wrangling/pandas_selecting_rows_on_conditions/

### 使用 Pandas 获取 DataFrame 中指定行和列的值 在 Pandas 中,可以通过多种方式获取 DataFrame 的特定元素。以下是几种常用的方法: #### 方法一:使用 `loc` 和 `iloc` - **基于标签索引 (`loc`)** 如果知道要访问的数据所在的行名或列名,则可以使用 `loc` 来定位。 ```python import pandas as pd data = {'A': [0, 1, 2, 3], 'B': [4, 5, 6, 7]} df = pd.DataFrame(data) # 获取第1行(即索引为0),以及'A'这一列对应的值 value = df.loc[0, 'A'] print(f"The value at row index=0 and column='A' is {value}") ``` - **基于位置索引 (`iloc`)** 当只知道数值型的位置而非名称时,应该采用 `iloc` 进行选取。 ```python # 获取第1行(即位置为0),以及第1列(即位置为0)对应的值 value = df.iloc[0, 0] print(f"The value at position (row=0,col=0) is {value}[^1]") ``` #### 方法二:通过布尔掩码筛选 也可以利用条件表达式来构建布尔数组作为过滤器,从而选出符合条件的一组或多组数据点。 ```python mask = (df.index == 0) & (df.columns == 'A') selected_value = df[mask].values.item() print(f"Selected Value using boolean mask: {selected_value}") ``` 需要注意的是,在实际应用过程中应当根据具体需求选择合适的方式;如果只是简单地读取单个单元格的内容,推荐优先考虑 `at` 或者 `iat` 函数,因为它们效率更高而且更直观易懂。 对于上述提到的例子而言,当只需要取得某一行某一列的具体数值而不涉及其他操作的时候,可以直接调用如下命令: ```python single_value = df.at[0,'A'] # 基于标签索引快速存取单一元素 another_single_value = df.iat[0,0] # 基于整数位置索引快速存取单一元素 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值