Python 3.x 如果值大于2,那么在列值中添加1的好方法是什么
如果列值大于2,我想在列值中添加1Python 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
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)))