最近开始从我的安全地点(R)扩展到Python,并且对于细胞定位/选择感到有些困惑Pandas.我已经阅读了文档,但我很难理解各种本地化/选择选项的实际意义.
.loc或.iloc超过最常用的选项.ix吗?.loc,iloc,at,和iat可以提供一些保证正确性是.ix不能提供的,但我也看到了在那里.ix往往是一刀切最快的解决方案..ix?我在某人的iPython笔记本中看到了这段代码,我对此代码的工作原理感到非常困惑.据我所知,pd.loc []用作基于位置的索引器,其格式为:
df.loc[index,column_name]
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,第一个索引似乎是一系列布尔值.有人可以向我解释这个选择是如何运作的.我试着阅读文档,但我无法找出解释.谢谢!
iris_data.loc[iris_data['class'] == 'versicolor', 'class'] = 'Iris-versicolor'
Run Code Online (Sandbox Code Playgroud)
Consider the following:
d = {'a': 0.0, 'b': 1.0, 'c': 2.0}
e = pd.Series(d, index = ['a', 'b', 'c'])
df = pd.DataFrame({ 'A' : 1.,'B' : e,'C' :pd.Timestamp('20130102')}).
Run Code Online (Sandbox Code Playgroud)
当我尝试通过以下方式访问 B 列的第一行时:
>>> df.B[0]
0.0
Run Code Online (Sandbox Code Playgroud)
我得到正确的结果。
但是,在阅读KeyError: 0 when accessing value in pandas series 之后,我假设,因为我已将索引指定为 'a'、'b' 和 'c',这是访问列第一行的正确方法B(使用位置参数)是:
df.B.iloc[0] ,并且df.B[0]应该引发一个关键错误。我不知道我错过了什么。有人可以澄清在哪种情况下我会收到 Key Error 吗?