有条件的减法日期

时间:2018-10-10 17:05:57

标签: python python-3.x pandas

可以说我下面有熊猫数据框。当Var0等于b时,如何从Var2中减去一个月。我想有条件地执行此操作,而不是仅使用var0 b值创建一个新的数据集,然后减去然后重新合并。 Var2在熊猫的日期时间。

os.system

2 个答案:

答案 0 :(得分:2)

使用DateOffset

df.Var2=pd.to_datetime(df.Var2,format='%Y-%m')
df.loc[df.Var0=='b','Var2']=df.Var2-pd.DateOffset(months=1)
df.Var2=df.Var2.dt.strftime('%Y-%m')
df
Out[24]: 
  Var0    Var1     Var2
0    x   76.27  2018-05
1    x   93.38  2018-06
2    a   73.00  2018-05
3    a   74.33  2018-05
4    b  184.08  2018-02
5    b  184.08  2018-01
6    c   67.26  2018-06
7    c   67.18  2018-07

答案 1 :(得分:0)

df['Var2'] = pd.to_datetime(df['Var2'])
df['Var2'] += np.where(df['Var0'] == 'b',
                       pd.to_timedelta(1, unit='M'),
                       pd.to_timedelta(0, unit='M'))