如何将用户输入作为一种方法传递?
how to pass user input as a method?
我正在尝试提示用户在 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] 是做事应该只有一种“正确的方法”。通常 pandas 或 python 显然不是这种情况。但是组织可以定义他们认为“正确”的东西。由于列的属性查找仅在某些时候有效,是否应该使用它?有争议!
[1]: 代码比实际规则更多'guidelines'。 -Hector Barbossa,Black Perl 船长。
我正在尝试提示用户在 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] 是做事应该只有一种“正确的方法”。通常 pandas 或 python 显然不是这种情况。但是组织可以定义他们认为“正确”的东西。由于列的属性查找仅在某些时候有效,是否应该使用它?有争议!
[1]: 代码比实际规则更多'guidelines'。 -Hector Barbossa,Black Perl 船长。