根据此数据框中带有遮罩的另一列中的特定值来更改熊猫数据框中的一列中的值应用

问题描述

我有一个数据框:

df = pd.DataFrame({'col1': [69,77,88],'col2': ['barf;','barf;','barfoo']})
print(df,'\n')

   col1    col2
0    69   barf;
1    77   barf;
2    88  barfoo 

我还具有选择功能

def selection_func(string):
    '''
    Function returns a,if string is 'barf;'
    '''
    if string == 'barf;':
        return 'a'
    else:
        return string

所以我需要根据col1的条件更改col2中的特定值(不是全部):

condition = (df['col1'] == 69) | (df['col1'] == 88)

所需的输出

   col1    col2
0    69       a
1    77   barf;
2    88  barfoo

解决方法

在写问题时找到了一个解决方案:

df.loc[condition,'col2'] = df.loc[condition,'col2'].apply(func)
print(df,'\n')

   col1    col2
0    69       a
1    77   barf;
2    88  barfoo

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...