Reputation: 158
I have D.F. named test:
December January Rating
0 35.00 35.00 1star
1 0.00 100.00 2star
2 38.71 28.46 3star
3 74.32 61.32 4star
4 65.39 66.505 3star
I want to filter rows except the last column, based on this boolean: test[test<test.mean()]
Note that mean() value will be different for each column.
Result is :
December January Rating
0 35.00 35.00 NaN
1 0.00 NaN NaN
2 38.71 28.46 NaN
3 NaN NaN NaN
4 NaN NaN NaN
Desired output:
December January Rating
0 35.00 35.00 1star
1 0.00 NaN 2star
2 38.71 28.46 3star
3 NaN NaN 4star
4 NaN NaN 3star
Upvotes: 2
Views: 101
Reputation: 323226
USe mean
and where
lt
here is <
df[['December','January']]=df[['December','January']].where(df.lt(df.mean()))
df
Out[77]:
December January Rating
0 35.00 35.00 1star
1 0.00 NaN 2star
2 38.71 28.46 3star
3 NaN NaN 4star
4 NaN NaN 3star
Upvotes: 1