dataframe对象与Series对象转化

dataframe对象获取切片的常用方法有两种,一种是通过索引名和列名,即使用.loc ,另外一种是使用行号和列号,即使用.iloc 。
例如下述dataframe;

import  pandas as pd
import  numpy as np
data=np.around(np.random.randn(3,4),decimals=2)
data = pd.DataFrame(data,columns=('A','B','C','D'))
print(data)

运行结果为:

      A     B     C     D
0  1.23 -2.10 -0.14  1.73
1 -0.51  0.91 -0.19  0.48
2  1.15 -0.27  0.29  0.89

当我们通过loc 和 .iloc 取出一行时,数据的类型为 Series !

print(data.loc[0,['A','B']])
print(data.iloc[0,0:2])

运行结果相同

A    0.17
B    0.79
Name: 0, dtype: float64

此时,原来的columns 变成了现在的index!

print(data.loc[0,['A','B']].index)
print(data.columns)

运行结果:

Index(['A', 'B'], dtype='object')
Index(['A', 'B', 'C', 'D'], dtype='object')

因此要注意切片引用时由于数据类型变化所导致的不同,以防止不必要的错误!
为了避免不必要的错误,可以使用逻辑索引切片,这时不会发生数据类型的转变!

print(data[data.index==0][['A','B']])

运行结果:

      A     B
0  0.32 -1.15

可以使用isinstance(var, pd.DataFrame)或者isinstance(var, pd.Series) 来进行数类型的判别!

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值