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[索引,索引]