如何将dataframe.iat与字符串列索引一起使用

时间:2019-02-02 00:42:16

标签: python pandas

我需要基于dataframe.iat [row,column]读取和更新我的数据单元格值。

我的数据大约33.8万行,因此我需要使用更快的方式(iat)来实现此目标。

我必须使用列的名称,因为它会被另一个循环动态更改

执行代码时,出现以下错误

for i in range(30000):
    b = data_jeux.iat[i, 'skill_id_%s' % k]


ValueError: iAt based indexing can only have integer indexers

ps:我已经使用df.get_value()正常工作了,但我必须强制使用.iat

1 个答案:

答案 0 :(得分:0)

pd.Index.get_loc

使用熊猫,通常应避免的Python级for环。但是,假设您必须进行显式迭代,则可以使用get_loc提取列索引:

col_loc = data_jeux.columns.get_loc
for i in range(30000):
    b = data_jeux.iat[i, col_loc(f'skill_id_{k}')]

鉴于您有一个很大的循环,请将data_jeux.columns.get_loc分配给循环外的变量并使用f字符串可能会带来一些边际性能改进。