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