Python 不同的括号类型

Python 不同的括号类型,python,syntax,Python,Syntax,因此,我一直遵循从reddit获得的关于理解python括号要求的指南: 这是一张单子吗?然后使用括号。 是口述吗?然后用大括号。 否则,您可能需要括号 然而,我遇到了上面无法解释的事情: df.groupby('Age')['Salary'].mean() 在这种情况下,年龄和薪水都是列表(它们都是df中的列),那么为什么我们要用括号表示年龄,用括号表示薪水呢 此外,为什么均值前有一个点,但不在(‘年龄’)和[‘薪水’]之间 我意识到我问的问题可能相当基本。我正在研究Python基本参考(第四

因此,我一直遵循从reddit获得的关于理解python括号要求的指南: 这是一张单子吗?然后使用括号。 是口述吗?然后用大括号。 否则,您可能需要括号

然而,我遇到了上面无法解释的事情:

df.groupby('Age')['Salary'].mean()

在这种情况下,年龄和薪水都是列表(它们都是df中的列),那么为什么我们要用括号表示年龄,用括号表示薪水呢

此外,为什么均值前有一个点,但不在(‘年龄’)和[‘薪水’]之间

我意识到我问的问题可能相当基本。我正在研究Python基本参考(第四版)开发人员库。如果有人有任何关于我这类问题的消息来源,见到他们会很高兴

谢谢

年龄和薪水都是列表(都是df中的列)

它们是范围/列,而不是列表。Dataframe的group by函数返回一个索引对象。调用方法需要括号,如
print()
。您可以使用方括号访问索引数据(参考
dict()
对象)

period和parandise是另一个函数调用

为什么在平均数之前有一个点,但不在(‘年龄’)和[‘薪水’]之间

简短的回答是,
foo.['bar']
的语法无效


但是,
df.groupBy(“Age”)。根据该对象上可用的函数,当然可以完成一些_func()
,如果您原谅我回答了重要的问题,而不是您问的问题……
那是一条非常紧凑的链条。将其分解为单独的行,然后使用IDE的调试视图逐步了解其中涉及的数据类型

query_method = df.groupby
query_string = 'Age'
query_return = query_method(query_string)
data = query_return['Salary']
data_mean = data.mean()

在PyCharm调试器中单步执行,您可以看到每个变量的类型。

在中可以找到很多上下文

首先,
df
是类
pandas.DataFrame
的对象。
pandas.DataFrame
有一个名为
groupby
的函数,它接受一些输入。在您的示例中,输入是
'Age'
。向函数传递参数时,如下所示:

my_函数(输入)
当您有多个输入时,传递它们的常用方法是作为多个变量,如下所示

my_函数(input1、input2等)
返回一个不可用的对象。使用切片表示法就像访问
列表
dict
中的元素一样,如下所示

my_list=[1,2,3]
打印(我的列表[0])#-->1
我的字典={
“a”:“苹果”,
“b”:“香蕉”,
“c”:“黄瓜”
}
打印(my_dict[“b]”)#-->香蕉
回到你的具体问题:

df.groupby('Age')['Salary'].mean()
df#df,数据帧变量的名称
.groupby('Age')#调用函数groupby以获取按列'Age'分组的帧
['Salary']#从该groupby访问'Salary'元素
.mean()#并将mean()函数应用于“Salary”元素
所以,您似乎得到了一份按员工年龄划分的所有平均工资的列表。
我希望这有助于解释df.groupby('Age')['Salary'].mean()=
obj.method(param)[Key]。method()
df
是一个对象。。。包含
groupby
方法的。。。返回一个
字典
。。。包含一个
'Salary'
键的。。。指向一个对象的值。。。包含
mean
方法的。@byxor尽量避免在comments@cricket_007对于我认为将要结束的问题,我会快速回答。这样,我仍然可以帮助OP,而无需提交一个可能会被忽略的低努力的答案。因此,我们在括号中放入我们想要索引groupby对象的内容(在本例中为年龄),然后在方括号中放入我们想要通过索引值平均的数据(在本例中为每个年龄索引的工资)?