我想在脚本的很多地方使用打印命令。但是我需要继续用其他字符串替换“ Survived”。
print(df.Survived.value_counts())
我可以通过与字符串相同的方式格式化变量来自动执行该过程吗?因此,如果我想将“生存”替换为“不同”,可以使用类似的内容:
var = 'different'
text = 'df.{}.value_counts()'.format(var)
print(text)
不幸的是,这会以字符串形式输出“ df.different.value_counts()”,而我需要打印df.different.value_counts()
我非常确定很多IDE,具有称为重构的选项,它允许您将每一行代码中的相似代码行/字符串更改为所需的内容。
我知道VSCode的重构方式,方法是选择一部分代码,然后右键单击以选择称为“更改所有事件”的选项。如果存在,它将替换每行上的确切代码。
但是,如果您想执行建议的操作,则可以选择eval('df.{}.value_counts()'.format(var))
,但这是非常不安全且危险的,因此,更安全的方法是导入ast模块并使用更安全的literal_eval函数。 ast.literal_eval('df.{}.value_counts()'.format(var))
。
如果ast.literal_eval()
不起作用,请尝试这种可行的最终解决方案。
def cat():
return 1
text = locals()['df.{}.value_counts'.format(var)]()
找到了方法:print(df [var] .value_counts())