def filter_top_exchange_addresses(exhanges_df, min_balance = 2000, min_txn_count = 400000):
    """
     Filter exchanges with balance > min_balance and transaction count > min_txn_count
    Args:
        exchanges_df: (pd.Dataframe) Exchanges with atleast columns 'balance'(float), 'txn_count'(float) and 'address' (str) 
        min_balance: (int) filter exchanges by balance > min_balance AND
        min_txn_count: (int) filter exchanges by txn count > min_txn_count
    Return: 
        (pd.Dataframe) of addresses
    Examples:
        df = scrape_exchanges()
        filter_top_exchange_addresses(df)
    """
    balance_condition = exhanges_df['balance'] > min_balance
    txn_condition = exhanges_df['txn_count'] > min_txn_count
    return exhanges_df[balance_condition & txn_condition]['address']