如何在迭代时替换特定的数据框值?

时间:2019-02-11 21:57:03

标签: python pandas

我有一个df,第4栏是狗的品种,我正在将它与狗的品种列表(map_dfc(1:10, function(i) { brm.fit.n <-brm(dollar.wage_1 ~ A + B + C + employer + F + G + H, data=sampleDT, iter = 200, family = gaussian()) sampleDT$mean.n<-fitted(brm.fit.n)[, 1] sampleDT$sd.n<-summary(brm.fit.n)$spec_pars[1] return(sampleDT) }) 进行比较。如果该犬种不在犬种列表中,我想用“ NaN”替换数据框中的值。逻辑工作正常,但我无法正确替换。怎么做?到目前为止,这是我一直在尝试的方法:

breeds

此示例提出了例外:for index, row in df_2.iterrows(): if not any(breed == row[3] for breed in breeds): df_2.replace([row[3], 'NaN'], inplace = True) ValueError: ('Invalid dtype for pad_1d [category]', 'occurred at index tweet_image_number')实际上是第3列,但我不确定为什么要在其中查找。

df的示例:

tweet_image_number

对格式感到抱歉,我不知道如何将数据框很好地复制到堆栈中

1 个答案:

答案 0 :(得分:0)

我需要退出第二个循环,这解决了它:

for index, row in df_2.iterrows():
    if not any(breed == row[3] for breed in breeds):
        row[3] = 'NaN'
    df_2.loc[index, 'breed_probability_1'] = row[3]