dataframe中的loc,iloc,ix的比较
程序员文章站
2022-06-03 19:07:21
...
这三个第一次看,会了,下一次又忘了 - 。 - 我咋这么蠢,记录一下
最大的区别是 iloc里面的行标签只能是数字,就是 默认的那个0,1,2,3,
问题:如果是根据索引来的,那我重设置索引了之后,是不是还是可以用iloc呢来进行索引呢?
答案是 不可能的
多说无益:
直接上代码
import pandas as pd
df = pd.read_excel('11ts.xls')
df1 = df.dropna(axis=0, how='all') # 用来删除缺失数据 返回值是删除后的df
df1.set_index(keys='股票代码',drop=False,inplace=True) # 将股票代码这一列设置为index ,尝试用iloc
df2 = df1.iloc['601857-SHE']
print(df2)
恭喜:完美的报错了
错误是:TypeError: cannot do positional indexing on <class ‘pandas.core.indexes.base.Index’> with these indexers [601857-SHE] of <class ‘str’>
说的还是索引的问题 ok 改为loc
import pandas as pd
df = pd.read_excel('11ts.xls')
df1 = df.dropna(axis=0, how='all') # 用来删除缺失数据 返回值是删除后的df
df1.set_index(keys='股票代码',drop=False,inplace=True) # 将股票代码这一列设置为index ,尝试用iloc
df2 = df1.loc['601857-SHE']
print(df2)
结果如下:
ID 股票代码 股票简称 … 股息率TTM PEG EV/EBITDA
股票代码 …
601857-SHE 1.0 601857-SHE 中国石油 … 0.07 0.02 7.93
601857-SHE 2.0 601857-SHE 中国石油 … 0.07 0.02 7.96
[2 rows x 47 columns]
欧克 没有任何问题
最大的疑问就是设置了索引之后,iloc就不能用了,iloc还是只能支持数字,这样的问题改为loc就ok了 = - =
上一篇: 钱白花了
推荐阅读
-
pandas ix &iloc &loc的区别
-
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
-
Python Pandas DataFrame:查询数据or选择数据(selection)之loc,iloc,at,iat,ix的用法和区别
-
详谈Pandas中iloc和loc以及ix的区别
-
pandas ix &iloc &loc的区别
-
Pandas中关于数据索引iloc()和loc()的用法和区别
-
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
-
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
-
Pandas中loc,iloc与直接切片的区别
-
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据