【自留】DataFrame索引及常见错误

1. 想要用第几行第几列的形式索引

如第一行第二列

df=pd.read_csv('the_ans.csv')
print(df.iloc[1,2]) #iloc :用position来去定位

iloc与loc的区别:

df.iloc[ 0:5],选择0-5行的所有值
df.iloc[ :, 0:2],选择前两列的所有值
df.loc[0],按索引选择index为0的那一行的值
df.loc[0,‘列名’],选择按索引选择index为0那一行‘列名’那列的值

例:

有一个数据表如下:

可以看到行标为7,列标为start的值为950,导入到Dataframe中,这个数应该表示为行5,start列,索引代码如下:

#索引方式1,loc索引
df=pd.read_csv('the_ans.csv')
print(df.loc[5,'start']) #第5行,start列

#输出结果
950

Process finished with exit code 0


#索引方式2,iloc索引
df=pd.read_csv('the_ans.csv')
print(df.iloc[5,1])

#输出结果
950

Process finished with exit code 0

2. 读取后用布尔索引,发现一直无法索引

print(gongkuang['start']==700)

上面明明是有700,却显示False

查看value:

print(gongkuang['start'].values)

发现values输出的结果是字符串,也就是说读取出来的数据并不是数字,而是字符串。这可能是因为读取表格的时候表头是单词,所以所有的数统一读成了字符串形式。

因此利用字符串的形式进行索引:

print('判断等于700',gongkuang['start']=='700')

value=gongkuang[(gongkuang.iloc[:,1]==700)].iloc[:,3] #等于700的这行的第三列(从0开始)数取出来

value=[float(x) for x in value] #然后再转化为float形式

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值