无法通过使用预定义参数作为字符串的一部分来引用列

我有一个数据集,我想通过使用预定义参数作为字符串的一部分来引用我的列。这样做的原因是我想要保留的列会根据一年中的时间和年份而变化。

我的参数是:

year = '20'

这工作正常并给我想要的结果:

df.['Q1 FY20'] = df.['Q1 FY20'].astype('int32')

但是当我尝试用参数替换字符串中的“20”时,我得到 KeyError: 'Q1 FY20':

df.['Q1 FY' + year] = df.['Q1 FY' + year].astype('int32')

我真的不明白这一点,因为我已经检查过:

type('Q1 FY20') == type('Q1 FY' + year)
'Q1 FY20' == 'Q1 FY' + year

......它们都是真的。我究竟做错了什么?


富国沪深
浏览 111回答 2
2回答

LEATH

你可以试试这个:year = '20'column_name = "Q1 FY" + yeardf[column_name] = df[column_name].astype('int32')快照:

扬帆大鱼

我发现了我的错误,在进行所需的数据清理之前,我试图在实例中测试代码。当我用我的参数替换实际代码时,它起作用了。然而,我仍然不明白为什么当我写出完整的字符串时没有得到任何 KeyError 。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python