def keywords_polarity_week(df, cw_weeknum):
    """
    Concatenate all tweets from `df` into a string by `cw_weeknum` and `polarity` .

    Parameters
    ----------
    df : pandas.core.frame.DataFrame
        Dataframe containing tweets to extract from.
    cw_weeknum : int
        week number.

    Returns
    -------
    positive_words : str
        Joined string from all positive tweets.
    negative_words : str
        Joined string from all negative tweets.

    """
    
    # Slice df based on selected date and polarity, then save as new df
    positive_df = df.loc[(df['week'] == cw_weeknum) & (df['polarity'] == 'positive')].copy()
    negative_df = df.loc[(df['week'] == cw_weeknum) & (df['polarity'] == 'negative')].copy()
    
    # Clean up
    positive_list = positive_df['tweet'].apply(lambda x: "".join(x).replace("'", "").replace("[", "").replace("]", "").replace(",", "").split())
    negative_list = negative_df['tweet'].apply(lambda x: "".join(x).replace("'", "").replace("[", "").replace("]", "").replace(",", "").split())
    
    # Join words
    positive_words = (' ').join([item for sublist in positive_list for item in sublist])
    negative_words = (' ').join([item for sublist in negative_list for item in sublist])
        
    return positive_words, negative_words