如何迭代替换数据框中特定列的值?

赛顿

我有一个看起来像这样的数据框:

newDF = pd.DataFrame()
output_table = newDF
output_table['Keyword'] = 'abgeg','abgegang', 'abgegeb'
output_table['ID'] = '1', '2', '3'

嵌套列表如下所示:

kal =[
     ['abgeglichen', 'abgeg'], 
     ['abgegangen', 'abgegang'], 
     ['abgegeben', 'abgegeb']
     ]

如您所见,子列表中index [1]处的元素是词干,并与数据帧中“关键字”列中的值相对应。

现在,我想用索引[0]的子列表中的值替换数据框中的关键字列的值。

我想要的结果:

output_table['Keyword'] = 'abgeglichen','abgegangen', 'abgegeben'
output_table['ID'] = '1', '2', '3'

我尝试了这段代码:

def rep(kal, df):
    keys = []
    for line in kal:
        for index, Keyword in df.iteritems():
            if line[1] == Keyword:
                a = Keyword.replace(Keyword, line[0])
                keys.append(a)
    return keys

我知道此函数只是返回列表键,但我不太确定如何正确执行此操作才能获得所需的结果。

有人可以帮忙吗?

耶斯列尔

更改嵌套列表中值的顺序,转换为dict,然后传递给Series.replace

output_table['Keyword'] = output_table['Keyword'].replace({a:b for b, a in kal})
print (output_table)
       Keyword ID
0  abgeglichen  1
1   abgegangen  2
2    abgegeben  3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章