У меня есть df, который выглядит так: full_senator_df:
Official Twitter Senator party
0 SenShelby Richard Shelby Republican
1 lisamurkowski Lisa Murkowski Republican
2 SenDanSullivan Dan Sullivan Republican
Я написал код, чтобы использовать эти данные для получения твитов для каждого из этих сенаторов. Есть ли что-то, чтобы добавить результаты в таблицу или получить результаты как json, а не на печать, которую он в настоящее время делает?
senator_count = 0
num_senators = len(full_senator_df.index)
while senator_count <= num_senators:
senator_official_twitter = full_senator_df['Official Twitter'][senator_count]
tweets = api.user_timeline(screen_name = senator_official_twitter, count = tweet_num, include_rts = True)
for status in tweets:
print(full_senator_df['Senator'][senator_count], status.text, full_senator_df['party'][senator_count])
senator_count += 1
Добавлено выходное изображение
Итак, вы хотите объединить данные в один фрейм данных?






Следующий код создает новый фрейм данных (таблицу) с твитами на каждого сенатора для каждой партии.
# Create an empty dataframe stub to append to later
all_tweets_df = pd.DataFrame(columns=['Senator', 'Party', 'Tweet'])
# Iterate over the initial dataframe
for _, row in full_senator_df.iterrows():
tweets = api.user_timeline(screen_name = row['Official Twitter'],
count = tweet_num,
include_rts = True)
senator_tweets_df = pd.DataFrame({'Senator': row['Senator'],
'Party': row['party'],
'Tweet': tweets})
# Append to the output
all_tweets_df = pd.concat([all_tweets_df, senator_tweets_df], sort=True)
Результат должен быть примерно таким
Party Senator Tweet
0 Republican Shelby tweet1
1 Republican Shelby tweet2
2 Republican Shelby tweet3
0 Republican Murkowski tweet1
1 Republican Murkowski tweet2
2 Republican Murkowski tweet3
0 Republican Sullivan tweet1
1 Republican Sullivan tweet2
2 Republican Sullivan tweet3
Я думаю, вы почти у цели. Если вы хотите сохранить цикл, вместо печати вы можете загрузить эти данные в фрейм данных. Сначала определите новый фрейм данных
dfTweets = pd.DataFrame() # place this before your while loop
row_num = 0
while ...
...
for status in tweets:
dfTweets.loc[0, row_num] = full_senator_df['Senator'][senator_count]
dfTweets.loc[1, row_num] = status.text,
dfTweets.loc[2, row_num] = full_senator_df['party'][senator_count]
row_num += 1
dfTweets.columns = ["Senator", "tweet_text"]
не могли бы вы выложить скриншот того, как выглядит вывод на печать?