我试图提示用户在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号船长赫克托·巴博萨。