Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 存储来自200+的信息;数据帧中的tweet_Python_Twitter_Tweepy - Fatal编程技术网

Python 存储来自200+的信息;数据帧中的tweet

Python 存储来自200+的信息;数据帧中的tweet,python,twitter,tweepy,Python,Twitter,Tweepy,我想使用tweepy从twitterapi获取数据,并将其存储在可用的数据框中。我使用了教程中的一些代码,并尝试对其进行调整,但遇到了一些问题 class TweetAnalyzer(): def tweets_to_data_frame(self, tweets): df = pd.DataFrame(data=[tweet.full_text for tweet in tweets], columns=['Tweets']) df['id'] =

我想使用tweepy从twitterapi获取数据,并将其存储在可用的数据框中。我使用了教程中的一些代码,并尝试对其进行调整,但遇到了一些问题

 class TweetAnalyzer():

    def tweets_to_data_frame(self, tweets):
        df = pd.DataFrame(data=[tweet.full_text for tweet in tweets], columns=['Tweets'])

        df['id'] = np.array([tweet.id for tweet in tweets])
        df['len'] = np.array([len(tweet.full_text) for tweet in tweets])
        df['date'] = np.array([tweet.created_at for tweet in tweets])
        df['source'] = np.array([tweet.source for tweet in tweets])
        df['likes'] = np.array([tweet.favorite_count for tweet in tweets])
        df['retweets'] = np.array([tweet.retweet_count for tweet in tweets])
        df['quote'] = np.array([tweet.is_quote_status for tweet in tweets])
        df['location'] = np.array([tweet.user.location for tweet in tweets])
        df['hashtags'] = np.array([tweet.entities.user_mentions.name for tweet in tweets])

        return df


if __name__ == '__main__':

    twitter_client = TwitterClient()
    tweet_analyzer = TweetAnalyzer()

    api = twitter_client.get_twitter_client_api()

    tweets = api.user_timeline(screen_name="realDonaldTrump", count=200, tweet_mode='extended')

    df = tweet_analyzer.tweets_to_data_frame(tweets)

    print(df.head(10))
    df.to_csv('trump.csv', index=False)
我的第一个问题是,使用这种方法,我无法获得超过200条推文。我在另一篇文章中读到使用游标对象。所以我做了如下改变:

tweets = Cursor(api.user_timeline, screen_name="realDonaldTrump", tweet_mode='extended').items()
但是,当函数尝试将多行附加到数据帧时,这会导致以下错误:

ValueError: Length of values does not match length of index
我将感谢任何帮助

此外,我还有另外两个问题,但我更乐于知道

1) 我想为hashtags单独设置一行。当我运行代码时,我会得到一个错误,因为自然不是每个tweet都包含hashtags。如果没有hashtag,是否可以运行代码并用“null”填充行

2) 日期行中的日期是我自己的时区,即CET。是否可以从推特发布的时区中提取时间

如果有人有什么建议,那就太棒了