Pandas 取值操作

对于DataFrame的取值操作有索引方式,loc方法和iloc方法
假设现有DataFrame数据如下

df = pd.DataFrame([[1, None, 3, None],
                   [4, 8, 12, 12]],
                  index=list("ab"), columns=list("ABCD")
                  )
print(df)

   A    B   C     D
a  1  NaN   3   NaN
b  4  8.0  12  12.0

索引方法

通过对DataFrame后面加索引取值,先写列后写行,
取某个元素

df = pd.DataFrame([[1, None, 3, None],
                   [4, 8, 12, 12]],
                  index=list("ab"), columns=list("ABCD")
                  )
print(df)
print('''df['A"]["a"]:''',df["A"]["a"])

   A    B   C     D
a  1  NaN   3   NaN
b  4  8.0  12  12.0
df['A"]["a"]: 1

取某列

df = pd.DataFrame([[1, None, 3, None],
                   [4, 8, 12, 12]],
                  index=list("ab"), columns=list("ABCD")
                  )
print(df)
print(df["A"])

   A    B   C     D
a  1  NaN   3   NaN
b  4  8.0  12  12.0
a    1
b    4
Name: A, dtype: int64

取某行?暂不了解

loc方法

loc方法要求列表类型的参数取值,对于DataFrame类型列表中只能有两个元素,先行后列
取a行

df = pd.DataFrame([[1, None, 3, None],
                   [4, 8, 12, 12]],
                  index=list("ab"), columns=list("ABCD")
                  )
print(df.loc["a"])

  A    B   C     D
a  1  NaN   3   NaN
b  4  8.0  12  12.0
A    1.0
B    NaN
C    3.0
D    NaN
Name: a, dtype: float64

同取指定元素a行A列

df = pd.DataFrame([[1, None, 3, None],
                   [4, 8, 12, 12]],
                  index=list("ab"), columns=list("ABCD")
                  )
print(df)
print(df.loc["a","A"])

   A    B   C     D
a  1  NaN   3   NaN
b  4  8.0  12  12.0
1

可取多个元素用列表填写
如取a行A和B列

print(df.loc["a",["A","B"]])

A    1.0
B    NaN
Name: a, dtype: float64

取范围列a行的A到D列

print(df.loc["a","A":"D"])

A    1.0
B    NaN
C    3.0
D    NaN
Name: a, dtype: float64

行操作同上
以a和b行的B到D列为例,其余不做赘述

print(df.loc["a":"b","B":"D"])

     B   C     D
a  NaN   3   NaN
b  8.0  12  12.0

参数类型可为boolList,如下取a到b行对应的布尔列

print(df.loc["a":"b",[True,True,True,False]])

  A    B   C
a  1  NaN   3
b  4  8.0  12

iloc方法

iloc方法要求用绝对索引取值,该索引为从0开始对行列生成绝对索引。

   A    B   C     D
a  1  NaN   3   NaN
b  4  8.0  12  12.0
变成
   0    1   2     3
0  1  NaN   3   NaN
1  4  8.0  12  12.0

其他与loc类似,以上面布尔列表取数据为例,这里需要注意的是用冒号取范围时,冒号对应的取值范围从闭区间[“a”,“b”] 变成了左闭右开[0,2)。

print(df.iloc[0:2,[True,True,True,False]])

   A    B   C
a  1  NaN   3
b  4  8.0  12
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值