如何传递用户输入作为一个方法?



我试图提示用户在pandas数据框中输入列名,然后使用该输入显示有关该列的信息。
我试过的代码:

df = #initializing dataframe
user_input = input('enter column name')
print(df.user_input.describe())

但是我得到了错误:

df has no attribute user_input

假设用户输入实际上是有效的列名,我如何以这种方式使用输入?

您还可以使用df[]访问列。试一试:

df[user_input].describe()
另一种方法是使用getattr():
getattr(df, user_input).describe()

我认为这很"不自然"。

pandas允许您查找列作为属性引用,如果它符合python的语法规则并且不干扰对象上的现有属性。在您的示例中,pandas将查找字面名称为"user_input"的列。

查找列的更通用的方法是使用索引。它没有相同的约束条件。

f = #initializing dataframe
user_input = input('enter column name')
print(df[user_input].describe())

现在pandas将使用用户输入的字符串来查找列。

编程的一个规则[1]是只应该有一种"正确的方法"。做事情。这显然不是熊猫或蟒蛇的情况。但是组织可能会定义他们认为"正确"的东西。既然列的属性查找只在某些时候起作用,那么应该使用它吗?有争议的!

[1]:代码更像是你所说的"指导方针",而不是实际规则。——黑Perl号船长赫克托·巴博萨。

相关内容

  • 没有找到相关文章

最新更新