pythondataframeif-statementambiguousto-json

Create Json File if Dataframe > Column > Criteria matches


I am struggling with the following:

Row1 Row2
A    10
B    10
C    10
D    11
F    12

I have a large data and want to create a json file if its meets Row2. (It's an Object dtype)

if df['Row2'] == '10':
   df.to_json(filelocation)
else:
   df.to_json(diff_filelocation)

The error is receive is: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all. I used bool and still get the same error message. When I tried any(), then only the first file gets created. I have checked multiple posts, but nothing seems to work.

I have tried the following method as well

if df[df['Row2'] == '10']
or
if df.loc[(df.Row2=='10')]

but those aren't working either.

I am also confused as something like df[df["Row2"]] works, but not in an if statement.

Thanks in advance.


Solution

  • You need to separate df on two different segments basing on boolean mask:

    m = df['Row2'].eq(10)
    d[m].to_json(filelocation)
    d[~m].to_json(diff_filelocation)