pandas dataframe-替换行值



我有一个带有四列的数据框架(请参见下面的输入数据框架)。我需要检查Meta列是否具有模式关系(示例M_RELATION),然后将关系列添加到Meta列值。在大熊猫中如何做到这一点?

输入数据框:

--------------------------------------
    Entry1 | Relation | Entry2 | Meta |
--------------------------------------
E11 | R_31 | E21 | M_xxx |
E12 | R_21 | E51 | M_relation |
E33 | R_21 | E51 | M_yyy |
E44 | R_41 | E46 | M_relation |

输出:

--------------------------------------
Entry1 | Relation | Entry2 | Meta |
--------------------------------------
E11 | R_31 | E21 | M_xxx |
E12 | R_21 | E51 | M_relation_21 |
E33 | R_21 | E51 | M_yyy |
E44 | R_41 | E46 | M_relation_41 |
--------------------------------------

您可以:

pattern = df.Meta.str.split('_').str.get(1) == 'relation'
df.loc[pattern, 'Meta'] = df.loc[pattern, 'Meta'] + '_' + df.loc[pattern, 'Relation'].str.split('_').str.get(1)

获得:

  Entry1 Relation Entry2           Meta
0    E11     R_31    E21          M_xxx
1    E12     R_21    E51  M_relation_21
2    E33     R_21    E51          M_yyy
3    E44     R_51    E51  M_relation_51

最新更新