DataFrame 切片取值

基本格式:dataframe[列名]

1.取多列
列名要用中括号括起来,所以下述命令
dataframe[[‘P4_profit_rate’,‘P3PS’,‘P3NS’]] 没问题,返回pandas.core.frame.DataFrame类型的值
dataframe[‘P4_profit_rate’,‘P3PS’,‘P3NS’]出错

2.取一列
列名可以不用中括号括起来,
dataframe[‘P4_profit_rate’] 没问题,返回pandas.core.series.Series类型的值
列名也可以用中括号括起来,
dataframe[[‘P4_profit_rate’]] 也能正常运行,但返回pandas.core.frame.DataFrame类型的值

3.[]切片方法
使用方括号能够对DataFrame进行切片,有点类似于python的列表切片。按照索引能够实现行选择或列选择或区块选择。

4.loc
loc按照索引的值进行行列选择。

5.iloc
iloc按照索引的位置来进行选择。使用iloc时只能使用数值

6.at
at的使用方法与loc类似,速度比loc更快,只能访问单个元素,不能访问多个元素。

7.iat
iat的使用方法与iloc类似,是一种更快的基于索引位置的选择方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Pandas 中,可以使用 loc 和 iloc 方法从 DataFrame取值。 loc 方法用于基于标签(label)或布尔数组(boolean array)从 DataFrame 中选取行和列,可以通过行标签和列标签进行切片或选择具体的行列,例如: ```python import pandas as pd df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c']) # 选取行为 'a',列为 'A' 和 'C' 的数据 print(df.loc['a', ['A', 'C']]) # 选取第 1 行和第 3 行,列为 'B' 和 'C' 的数据 print(df.loc[['a', 'c'], ['B', 'C']]) # 选取所有行,列为 'A' 的数据 print(df.loc[:, 'A']) ``` 输出结果为: ``` A 1 C 7 Name: a, dtype: int64 B C a 4 7 c 6 9 a 1 b 2 c 3 Name: A, dtype: int64 ``` iloc 方法则用于基于行号和列号从 DataFrame 中选取行和列,与 loc 不同,iloc 是依据行号和列号来进行切片或选择具体的行列,例如: ```python import pandas as pd df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}) # 选取第 0 行,第 2 列的数据 print(df.iloc[0, 2]) # 选取第 0 行和第 2 行,第 1 列的数据 print(df.iloc[[0, 2], 1]) # 选取所有行,第 0 列的数据 print(df.iloc[:, 0]) ``` 输出结果为: ``` 7 0 4 2 6 Name: B, dtype: int64 0 1 1 2 2 3 Name: A, dtype: int64 ``` 需要注意的是,使用 loc 或 iloc 方法时,行和列的切片方式不同,loc 是闭区间,而 iloc 是半开区间。例如选取第 0 行到第 1 行,第 0 列到第 1 列的数据,loc 方法应该写成 df.loc['a':'b', 'A':'B'],而 iloc 方法应该写成 df.iloc[0:2, 0:2]。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值