为列名创建变量

时间:2019-03-14 13:05:10

标签: python pandas

不确定是否有人可以提供帮助,但是我正在尝试创建一个变量,该变量可用于调用列名,而不是使用字符串来标识列名。这样一来,我可以随时返回更改“目标变量”的值,然后运行整个代码,而不必继续进入其他单元格来更改字符串。 到目前为止,我已经看到可以使用以下语句: TargetCountry = CountryDF['UK'](以Uk作为列名)

但是,当我跑步时:

TargetNot0= CountryDF.loc[CountryDF[TargetCountry] != 0]
TargetNot0
TargetNot0.sort_values(by=TargetCountry, ascending=False)
  • 我收到一个Key错误,说“ [0。 0. 0. ... 0. 0. 2.4]不在索引中'

有谁知道解决方案吗?

2 个答案:

答案 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'