python - Pandas Python用户输入数据框对象的属性
问题描述
我试图允许用户输入数据框对象的属性。
我尝试将输入更改为字符串。我也尝试过使用保存到变量的输入。这两个选项都不起作用。
data = pd.read_csv('2019FallEnrollees.csv')
input1_col = input("Enter comparison group A: ")
input2_col = input("Enter comparison group B: ")
input1_str= str(input1_col)
input2_str = str(input2_col)
test = data[['CUM_GPA', input1_str, input2_str]]
# error here! 'test' does not have attribute 'input1_str' or 'input1_col'
df_1 = test[(test.input1_str == 0) & (test.input2_str == 0)]
df_2 = test[(test.input1_col == 1) & (test.input2_col == 0)]
print(stats.ttest_ind(df_1.CUM_GPA, df_2.CUM_GPA, equal_var = False))
错误消息说
"AttributeError: 'DataFrame' 对象没有属性 'input1_str' 或 "AttributeError: 'DataFrame' 对象没有属性 'input1_col'
解决方案
欢迎!要访问 pandas 中的列,您不能使用data.column
Trydata[column]
或在您的情况下test[input1_col]
在这样做之前,请确保该列确实存在并且用户没有输入不存在的列。
有时列名可以是整数,转换为字符串也可能是一个问题
您可以通过运行获取所有数据框列的列表data.columns
(如果您想要一个常规数组list(data.columns)
:),实际上您可以通过运行更改列名data.columns = ["Column Header 1" , "Column Header 2" etc.]
推荐阅读
- regex - 如何对嵌套的动态键应用 Mongo DB 查找命令
- asp.net - 根据第一个下拉asp.net的选择填充下拉值和项目
- python - 检测嘈杂的背景/对象 - OpenCV
- java - 如何使用 pdfHtml 插件使用 iText 7 或 5 实现 Aztec-barcode?
- laravel - 在具有多个附加搜索过滤器的类似查询中使用数组
- python - 在栅格中查找方向变化的算法
- javascript - js树在处理选中/取消选中事件并将所有复选框设置为true时不起作用
- ios - 我什么时候应该屏蔽 UITableView 部分单元格的角?
- javascript - 我对步骤计数有疑问-reactjs 表单
- jquery - 在 HTML 页面或模板中使用 Django-REST-Framework 从 Django 中创建的 API 获取/显示 API 数据