Python 为什么可以';我是否只使用括号访问熊猫数据框中的单个元素?
我理解以下两种方式都是允许的:Python 为什么可以';我是否只使用括号访问熊猫数据框中的单个元素?,python,pandas,dataframe,syntax,Python,Pandas,Dataframe,Syntax,我理解以下两种方式都是允许的: 要访问单个列:df['rowA'] 要访问几行:df[3:5] 但是df[3:5,'rowA']或df[7,9]给出了一个异常(TypeError:unhable type:'slice')。这背后的理由是什么 不要使用df[3:5,'rowA']使用: df.loc[df.index[3:5], 'rowA'] df.iloc[[7,9]] 不要使用df[7,9] df.loc[df.index[3:5], 'rowA'] df.iloc[[7,9]]
df['rowA']
df[3:5]
但是
df[3:5,'rowA']
或df[7,9]
给出了一个异常(TypeError:unhable type:'slice'
)。这背后的理由是什么 不要使用df[3:5,'rowA']使用:
df.loc[df.index[3:5], 'rowA']
df.iloc[[7,9]]
不要使用df[7,9]
df.loc[df.index[3:5], 'rowA']
df.iloc[[7,9]]
请阅读您也可以链接它们,一个获取列和切片的组合。顺序无关紧要
df['rowA'][3:5]
或:
在处理数字时,这是很困难的,因为解释器必须推断您是希望将1作为索引位置,还是如果列标记为0,1,2,3,那么您希望列标记为1。这就是为什么使用.loc和.iloc选择器最安全的原因。谢谢,我知道.loc和.iloc,所以我想主要是为了避免歧义?但是,如果我们将两个索引都作为字符串,那么很明显它们是按标签的:例如
df[['a','b'],['c','d']]
。python似乎至少应该允许这种语法。例如,对于混合索引,它也可以先默认索引,然后默认字符串。我只是不明白他们为什么要完全禁止这种符号df[索引,索引]