如何替换数据框中的列的某些值?

时间:2020-05-26 12:48:24

标签: python python-3.x pandas dataframe

我正在尝试用''替换列中的某些值,但它正在替换所有值。 你能告诉我怎么了吗?

示例:

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'

3 个答案:

答案 0 :(得分:0)

如果需要的解决方案,请同时替换中的所有ANDOR

您的代码对于删除分配回来说是必要的更改,因为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' 不是一个好习惯,请检查thisthis


如果需要替换非子字符串值,请使用Series.maskSeries.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)