1

I am trying to create a data frame using Pandas on tweets gathered from Twitter's API. An error message happens when I try to call my code (screenshot below). It is saying that my data frame, df, is referenced before the assignment when at first glance it is clearly not.

Here is my error message "UnboundLocalError: local variable 'df' referenced before assignment"

MAIN METHOD

twitter_client = TwitterClient()
api = twitter_client.get_twitter_client_api()
tweet_analyzer = TweetAnalyzer()

#go together
tweets = api.user_timeline(screen_name ="nytimes", count=200) #prints tweets from the reald donald trump
df = tweet_analyzer.tweets_to_data_frame(tweets) #get text of tweet

TWITTER_ANALYZER CLASS

class TweetAnalyzer:

def tweets_to_data_frame(self, tweets):
    count =0
    for tweet in tweets:
        #print(type(tweet))
        json_str = json.dumps(tweet._json)
        parsed = json.loads(json_str)
        #print(json.dumps(parsed, indent=4, sort_keys=True))
        #print (parsed['text'])
        y=re.findall('.+Corona.+',parsed['text'])
        #count=count+1;
        #print("Count", count)
        #print(str(tweet.text))

        if len(y)>0 and tweet.favorite_count > 6000:
            print(tweet.text)
            df = pd.DataFrame(data = [tweet.text], columns = ['tweets'])
            df['id'] = np.array([tweet.id])
            df['len'] = np.array([len(tweet.text)])
            df['date'] = np.array([tweet.created_at])
            df['source'] = np.array([tweet.source])
            df['likes'] = np.array([tweet.favorite_count])
            df['retweet'] = np.array([tweet.retweet_count])
    return df
khelwood
  • 55,782
  • 14
  • 81
  • 108
  • I think your question is answered in this post: https://stackoverflow.com/questions/370357/unboundlocalerror-on-local-variable-when-reassigned-after-first-use – griffin_cosgrove Apr 27 '20 at 23:05

0 Answers0