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

本文详细介绍了如何使用Pandas库中的iloc和loc方法进行数据索引,并解决了读取CSV文件时数据类型被误读为字符串的问题,通过正确的方法实现了高效的数据筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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形式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值