问题描述
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