不确定是否有人可以提供帮助,但是我正在尝试创建一个变量,该变量可用于调用列名,而不是使用字符串来标识列名。这样一来,我可以随时返回更改“目标变量”的值,然后运行整个代码,而不必继续进入其他单元格来更改字符串。
到目前为止,我已经看到可以使用以下语句:
TargetCountry = CountryDF['UK']
(以Uk作为列名)
但是,当我跑步时:
TargetNot0= CountryDF.loc[CountryDF[TargetCountry] != 0]
TargetNot0
TargetNot0.sort_values(by=TargetCountry, ascending=False)
有谁知道解决方案吗?
答案 0 :(得分:0)
TargetCountry = CountryDF['UK']
这可能应该是
TargetCountry = 'UK'
您正在使用的行将转换为:
TargetNot0= CountryDF.loc[CountryDF[CountryDF['UK']] != 0]
并不是:
TargetNot0= CountryDF.loc[CountryDF['UK'] != 0]
答案 1 :(得分:0)
TargetNot0= CountryDF.loc[CountryDF[TargetCountry] != 0]
等效于TargetNot0= CountryDF.loc[CountryDF[CountryDF['UK']] != 0]
,但是,CountryDF无法访问“英国”列,而是尝试访问[0。 0. 0. ... 0. 0. 2.4](即CountryDF ['UK']值)。
要解决此问题,您只需写:TargetCountry = 'UK'
。