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