前提
twitterで全国のトレンドをtwitterAPIに接続して取得してトレンドをエクセルファイルに書き出したいのですが上手くいきません。
tweepyを使ってTwitterのトレンドを取得してpandasでエクセルで表示させようとしています。
コマンドの出力結果には全国各地域の50番目までのトレンドを取得することができました。
そして、全国のトレンド150位をエクセルに書き出したのですが、カラムCの1行にすべてのトレンドが1450番までという形で取得してしまいます。
エクセルシートのカラムAにはインデックス番号、カラムBにはトレンド順位、カラムCにはトレンド名が入ってます。
エクセルファイルでは下記のような形で書き出されています。
↓↓↓
カラムA カラムB カラムC カラムD...
0 1 トレンド1
1 2 トレンド2
2 3 トレンド3
3 4 トレンド4
. . .
. . .
. . .
450 50 トレンド450
実現したいこと
カラムBはしっかり50位まで取得したら次はどこかの地域の1位を取得しているようで「1」から表示されています。こちら50位まで取得したら、次はカラムDに1〜50位、カラムEに1〜50位と1行に50位ずつにしたいのですが、これはpandasですることは可能でしょうか??ぜひアドバイスいただきたいです。よろしくお願いします。
例えば下記のようにできたらと思っています。
A カラムB カラムC カラムD...
0 1 トレンド1 トレンド1. . . .
1 2 トレンド2 トレンド2 . . . .
2 3 トレンド3 トレンド3. . . .
3 4 トレンド4 トレンド4. . . .
. . . .
50 50 トレンド50 トレンド50 トレンド50. . . .
分かりにくかったら申し訳ありません。
エラーメッセージは特にありません。コマンドには全国各地域1〜50位まで取得して表示できています。
該当のソースコード
import tweepy import pandas as pd import datetime CONSUMER_KEY = "キー" CONSUMER_SECRET = "シークレット" ACCESS_TOKEN = "トークン" ACCESS_SECRET = "シークレット" auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) api = tweepy.API(auth, wait_on_rate_limit=True) colum = ["日本", "札幌", "仙台", "東京", "京都", "大阪", "広島", "福岡", "沖縄"] places ={ "日本": 23424856, "札幌": 1118108, "仙台": 1118129, "東京": 1118370, "京都": 15015372, "大阪": 15015370, "広島": 1117227, "福岡": 1117099, "沖縄": 2345896 } tr_date = [] for area, place in places.items(): # print("--{}--".format(area)) # リストになっているので取り出す treands = api.trends_place(place)[0] for i, content in enumerate(treands["trends"]): a = i + 1, content['name'] tr_date.append(a) df = pd.DataFrame(tr_date) df.to_excel('sample.xlsx', sheet_name="Sheet1")
補足情報(FW/ツールのバージョンなど)
python3.8 PyCharm
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/10 12:55