I have the following dataframes:
df1 = pd.DataFrame(index = [0], columns=['price', 'action', 'amount']) df1['price'] = 3 df1['action'] = 'deposit' df1['amount'] = 2 df2 = pd.DataFrame()
where df1 represents deposits and df2 represents withdrawals. I want to concat them to get
df:
    price    action     amount
 0  3        deposit    2
 1  nan      withdrawal nan
I am calling an API that fetches withdrawals and deposits. So far, no withdrawals have been made but I want to display that as shown in “df” whenever the code is executed.
Any suggestions on how to do that without hardcoding?
Thank you.
Advertisement
Answer
Use df.empty:
df1 = df1 if not df1.empty else pd.DataFrame({'action': ['deposit']})
df2 = df2 if not df2.empty else pd.DataFrame({'action': ['withdrawal']})
out = pd.concat([df1, df2])
print(out)
# Output
   price      action  amount
0    3.0     deposit     2.0
0    NaN  withdrawal     NaN