I wonder how to check if a pandas dataframe has negative value in 1 or more columns and return only boolean value (True or False). Can you please help?
In[1]: df = pd.DataFrame(np.random.randn(10, 3))
In[2]: df
Out[2]:
          0         1         2
0 -1.783811  0.736010  0.865427
1 -1.243160  0.255592  1.670268
2  0.820835  0.246249  0.288464
3 -0.923907 -0.199402  0.090250
4 -1.575614 -1.141441  0.689282
5 -1.051722  0.513397  1.471071
6  2.549089  0.977407  0.686614
7 -1.417064  0.181957  0.351824
8  0.643760  0.867286  1.166715
9 -0.316672 -0.647559  1.331545
Expected output:-
Out[3]: True
                Pandas DataFrame any() Method The any() method returns one value for each column, True if ANY value in that column is True, otherwise False. By specifying the column axis ( axis='columns' ), the all() method returns True if ANY value in that axis is True.
This does the trick:
(df < 0).any().any()
To break it down, (df < 0) gives a dataframe with boolean entries. Then the first .any() returns a series of booleans, testing within each column for the presence of a True value. And then, the second .any() asks whether this returned series itself contains any True value.
This returns a simple:
True
                        You can chain two any
df.lt(0).any().any()
Out[96]: True
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With