Python 3.x 如果值大于2,那么在列值中添加1的好方法是什么

Python 3.x 如果值大于2,那么在列值中添加1的好方法是什么,python-3.x,pandas,numpy,pandas-groupby,Python 3.x,Pandas,Numpy,Pandas Groupby,如果列值大于2,我想在列值中添加1 here is my dataframe df=pd.DataFrame({'A':[1,1,1,1,1,1,3,2,2,2,2,2,2],'flag':[1,1,0,1,1,1,5,1,1,0,1,1,1]}) df\U out df=pd.DataFrame({'A':[1,1,1,1,1,1,3,2,2,2,2,2,2],'flag':[1,1,0,1,1,1,6,1,1,0,1,1,1]}) 与添加1一起使用: df.loc[df.A.gt(2

如果列值大于2,我想在列值中添加1

here is my dataframe

df=pd.DataFrame({'A':[1,1,1,1,1,1,3,2,2,2,2,2,2],'flag':[1,1,0,1,1,1,5,1,1,0,1,1,1]}) 
df\U out

df=pd.DataFrame({'A':[1,1,1,1,1,1,3,2,2,2,2,2,2],'flag':[1,1,0,1,1,1,6,1,1,0,1,1,1]})
与添加
1
一起使用:

df.loc[df.A.gt(2), 'flag'] += 1
print (df)
    A  flag
0   1     1
1   1     1
2   1     0
3   1     1
4   1     1
5   1     1
6   3     6
7   2     1
8   2     1
9   2     0
10  2     1
11  2     1
12  2     1
或:

编辑:

然后:

x= df.groupby(pd.cut(df['x'], bins))['y'].apply(lambda x:abs(x-np.mean(x)))

x=df.groupby(pd.cut(df['x'],bin))['y'])。在本代码中应用(lambda x:abs(x-np.mean(x)),如果平均值大于2,如何调整+1@Nickel-你认为变革是否适用于变革?是的,它可以be@Nickel-然后将
df.A.gt(2)
更改为
df.groupby(pd.cut(df['x'],bin))['y'].变换(lambda x:abs(x-np.mean(x)).gt(2)
但这里我想做的是,如果mean大于2,加1,然后做x-mean(x)
mean = df.groupby(pd.cut(df['x'], bins))['y'].transform('mean')
df['flag'] = np.where(mean.gt(2), df['y'] + 1, df['y'])
x= df.groupby(pd.cut(df['x'], bins))['y'].apply(lambda x:abs(x-np.mean(x)))