python - 编写一个函数,通过删除指定列的四分位数区域内的行来子集数据帧
问题描述
这是完整的问题:
编写一个函数,通过删除指定列的四分位数区域内的行来子集数据帧。
该函数作为输入:
A:Pandas_Dataframe(例如使用 NHL_GoaliesDF)
B. 列名¶
预期输出:
A. 输出是一个删除指定列 IQR 之外的行的 DataFrame。
所以这是我到目前为止所拥有的:
NHL_Goalies=
pd.read_excel('NHLGoalies2016_2017.xls',na_values='',sheetname=0)
import pandas as pd
def pandas_filter():
df= NHL_Goalies
column= "Ht"
q1 = df[column].quantile(0.25)
q3 = df[column].quantile(0.75)
iqr = (df[column] <= q1) | (df[column] >= q3)
return df[iqr]
pandas_filter()
上面的函数工作得很好,并打印出问题的内容。但是,如果我合并 df 和 column 变量的用户输入,我会得到以下信息:
def pandas_filter():
df= input()
column= input()
q1 = df[column].quantile(0.25)
q3 = df[column].quantile(0.75)
iqr = (df[column] <= q1) | (df[column] >= q3)
return df[iqr]
pandas_filter()
TypeError Traceback (most recent call last)
<ipython-input-17-b7d8feaf055e> in <module>()
7 return df[iqr]
8
----> 9 pandas_filter()
<ipython-input-17-b7d8feaf055e> in pandas_filter()
2 df= input()
3 column= input()
----> 4 q1 = df[column].quantile(0.25)
5 q3 = df[column].quantile(0.75)
6 iqr = (df[column] <= q1) | (df[column] >= q3)
TypeError: string indices must be integer
现在的问题是我该怎么做?任何帮助是极大的赞赏!
解决方案
推荐阅读
- r - 在集群上运行 R 中的 RStan 作业时,使用过多的内核是否可能会导致内存不足?
- azure - Azure DevOps 发布管道 - 如何使用 Azure Powershell 在管道中的变量中设置和传递值
- arrays - 为什么 bash 数组可以作为查找的选项,而字符串却没有?
- javascript - 如何使用 forEach 迭代数组并更新 Mongoose 中的元素
- php - 使用 get_field('status') 的数据库查询中的字段返回 NULL
- excel - Excel vba检测何时单击任何控件表单
- xhtml - reCAPTCHA 未在 XHTML 文档中正确加载
- c# - C# 在构造函数中从 REST 客户端初始化类属性
- python - 将numpy数组逐块求和以形成一个较小的数组
- python-3.x - pybind11 是否支持'从
进口 ' 样式导入?