我正在尝试用''替换列中的某些值,但它正在替换所有值。 你能告诉我怎么了吗?
示例:
df:
m_PrevSize
预期输出:
df:
m_PrevSize
我正在执行以下代码:
output_condition
0 AND
1 OR
2 THEN 'Unsolicited Question From Field'
3 THEN 'Unsolicited Question Direct'
4 AND
5 AND
6 OR
7 THEN 'Introduction'
答案 0 :(得分:0)
如果需要的解决方案,请同时替换子中的所有AND
和OR
:
您的代码对于删除分配回来说是必要的更改,因为inplace
参数返回None
,并且两个值都由|
的正则表达式或AND
或{{ 1}}:
OR
没有df['output_condition'].replace('AND|OR', '', inplace=True, regex=True)
的解决方案:
inplace
我认为df['output_condition'] = df['output_condition'].replace('AND|OR', '', regex=True)
print (df)
output_condition
0
1
2 THEN 'Unsolicited Question From Field'
3 THEN 'Unsolicited Question Direct'
4
5
6
7 THEN 'Introduction'
不是一个好习惯,请检查this和this。
如果需要替换非子字符串值,请使用Series.mask
和Series.isin
:
inplace
详细信息:
vals = ['AND','OR']
df['output_condition'] = df['output_condition'].mask(df['output_condition'].isin(vals), '')
print (df)
output_condition
0
1
2 THEN 'Unsolicited Question From Field'
3 THEN 'Unsolicited Question Direct'
4
5
6
7 THEN 'Introduction'
答案 1 :(得分:0)
只需丢弃ending_date
:
inplace=True
或者您可以链接:
df['output_condition'] = df['output_condition'].replace('AND', '')
df['output_condition'] = df['output_condition'].replace('OR', '')
但是,由于要替换整个值,因此可以使用df['output_condition'] = df['output_condition'].replace('AND', '').replace('OR', '')
:
isin()
输出:
df.loc[df['output_condition'].isin(['AND','OR']), 'output_condition'] = ''
答案 2 :(得分:0)
我认为这也应该起作用:
df['output_condition'].apply(lambda x: '' if x=='AND' or 'OR' else x)