I am looking to create a simple function to return two different dataframes depending on the values in a certain column.
Here's my data:
np.random.seed(1111)
df = pd.DataFrame({
'Category':np.random.choice( ['Group A','Group B','Group C','Group D'], 10000),
'Sub-Category':np.random.choice( ['X','Y','Z'], 10000),
'Sub-Category-2':np.random.choice( ['G','F','I'], 10000),
'Product':np.random.choice( ['Product 1','Product 2','Product 3'], 10000),
'Units_Sold':np.random.randint(1,100, size=(10000)),
'Dollars_Sold':np.random.randint(100,1000, size=10000),
'Customer':np.random.choice(pd.util.testing.rands_array(10,25,dtype='str'),10000),
'Date':np.random.choice( pd.date_range('1/1/2016','12/31/2018',
freq='M'), 10000)})
Here's a simplified version of what I'm trying to do:
def summary(df_use):
if df_use['Sub-Category'] == 'X':
df1 = df_use.groupby(['Category','Sub-Category','Date']).agg({'Units_Sold':'sum'})\
.unstack()
elif df_use['Sub-Category'] == 'Y':
df2 = df_use.groupby(['Category','Sub-Category','Date']).agg({'Dolars_Sold':'sum'})\
.unstack()
return df1, df2
I'm getting the following error:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Any help would be greatly appreciated! I am looking to use an if statement if at all possible.
ifstatement.