当列“ A”是数字列表,列“ B”是目标变量时,python代码df ['A'] [df ['B']]如何工作?

时间:2019-08-23 16:45:09

标签: pandas

我正在尝试进行shapiro测试:

stats.shapiro(dataframe_iris_new['sepalWidth'][dataframe_iris_new['target']])

我对以上代码的工作方式感到困惑。

2 个答案:

答案 0 :(得分:0)

当您执行dataframe ['columnA']时,它将仅返回该列,因此应引发错误。您可以将输出粘贴到这里吗?

答案 1 :(得分:0)

假设您有一个这样的系列:

> s = pd.Series({
    2: 'Alan',
    4: 'Mary',
    6: 'Sophie',
    8: 'Jack'
})

2      Alan
4      Mary
6    Sophie
8      Jack
dtype: object

您可以按单个标签标签列表对其进行切片:

> s[[2]]

2    Alan
dtype: object

> s[[6,2]]

6    Sophie
2      Alan

您还可以使用它分割一个布尔列表:

> s[[False, True, True, False]]

4      Mary
6    Sophie
dtype: object

那么这如何适合您的问题?

  • dataframe_iris_new['sepalWidth']返回一个序列(我们称之为s
  • dataframe_iris_new['target']再次推出另一个系列(我们称其为t

s[t]是切片操作:根据s中的值切割t

  • 如果t是标签列表,它将在s中提取匹配的标签
  • 如果t是布尔列表,它将选择t的值为True的项目。这还要求st的长度相同。