Say that I have a dataframe that looks like this:
df=pd.DataFrame({'user': [1, 2, 3, 4, 5, 6],
'value': [0.64, 0.93, 0, 0.43, 0.65, 0]})
df
I used sample() to select one row (user) randomly
df1 =df.sample()
df1
How could I randomly select one user or no user? I mean the expected output could be one user (e.g. 1,2,3,4,5,6) then (print user id) or no user id is returned (print no user is selected)?
for example: if user 1 is selected randomly
print(user 1 is selected)
if no user is selected
print(no user is selected)
As per @Sid's answer, add a row with None and perform the sampling:
import pandas as pd
df=pd.DataFrame({'user': [1, 2, 3, 4, 5, 6],
'value': [0.64, 0.93, 0, 0.43, 0.65, 0]})
df = pd.\
concat([
df,
pd.DataFrame({'user': [None], 'value': [None]})
])
sample = df.sample(1)["user"].iloc[0]
if sample is None:
print("no user is selected")
else:
print(f"user {sample} is selected")