Одна вещь, которую вы могли бы сделать, это создать данные следующим образом:
input = np.array([[tweet.source, tweet.created_at, tweet.text,
len(tweet.text), tweet.favorite_count, tweet.retweet_count]
for tweet in tweets])
Таким образом, вы только итерируете массив твитов один раз, чтобы построить матрицу, которую затем можете передать пандам:
dataframe = pd.DataFrame(input, columns=['Author', 'Date', 'Text', 'Length',
'Favorites', 'Retweets'])
Гораздо эффективнее построить все ваши данные за один раз, а затем построить вокруг них пирамиду данных, чем добавлять каждое наблюдение к данным.
Если вы собираетесьДля этого вам нужно создать список информационных фреймов, используя приведенное выше, а затем использовать pd.concat
df_total = pd.concat([df1, df2, ... dfn])
Или, если вы только что получили новую партию, вы можете попробовать:
df = pd.concat([df, df_new_batch])
ссылка на документ pd.concat