Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧中的条件变化_Python_Pandas_Datetime - Fatal编程技术网

Python 数据帧中的条件变化

Python 数据帧中的条件变化,python,pandas,datetime,Python,Pandas,Datetime,我想更改days列,该列是以indicator列为条件的datetime列,即当indicator等于DTM或AMC时,我想在days列中添加1天 import pandas as pd df = pd.DataFrame({'days': [1, 2, 3], 'indicator': ['BMO', 'DTM','AMC']}) 结果如下所示: days indicator 0 1 BMO 1 3 DTM 2

我想更改days列,该列是以indicator列为条件的datetime列,即当indicator等于DTM或AMC时,我想在days列中添加1天

 import pandas as pd
 df = pd.DataFrame({'days': [1, 2, 3],
            'indicator': ['BMO', 'DTM','AMC']})
结果如下所示:

   days indicator
0     1       BMO
1     3       DTM
2     4       AMC
使用:

输出

作为替代方案,您可以使用:

您可以直接添加布尔掩码,因为在Python中,布尔值是整数0,1。

使用:

输出

作为替代方案,您可以使用:

您可以直接添加布尔掩码,因为在Python中,布尔值是整数0,1。

使用np。其中isin:

将np.where与isin一起使用:

使用:

或:

输出

使用:

或:

输出


另外,非常有用,将此添加到我的作弊列表中,谢谢!!另外,非常有用,将此添加到我的作弊列表中,谢谢!!
df['days'] += (df.indicator.eq('AMC') | df.indicator.eq('DTM'))
print(df)
   days indicator
0     1       BMO
1     3       DTM
2     4       AMC
df['days'] += df.indicator.isin(('AMC', 'DTM'))
print(df)
df['days'] = np.where(df['indicator'].isin(['DTM', 'AMC']), df['days'].add(1), df['days'])

   days indicator
0     1       BMO
1     3       DTM
2     4       AMC
df['days']=df['days'].mask(df['indicator'].isin(['DTM','AMC']),df['days']+1)
df['days']=df['days'].where(~df['indicator'].isin(['DTM','AMC']),df['days']+1)
#print(df)

   days indicator
0     1       BMO
1     3       DTM
2     4       AMC