Python 存储来自200+的信息;数据帧中的tweet
我想使用tweepy从twitterapi获取数据,并将其存储在可用的数据框中。我使用了教程中的一些代码,并尝试对其进行调整,但遇到了一些问题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'] =
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。是否可以从推特发布的时区中提取时间
如果有人有什么建议,那就太棒了