2017-06-23 43 views
0

我已經在for循環下生成兩個列表:對於追隨者Tweepy標識環路誤差爲多個用戶

A.IDS:的追隨者用戶的帳戶ID的

B.處理:用戶手柄,這樣我可以追溯到該處理每個從動屬於2

使用兩個隨機用戶的代碼,這樣我可以輕鬆地跟蹤問題:

import tweepy 
import time 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_secret) 

users = ['x', 'y'] 
api = tweepy.API(auth) 
ids = [] 
handles = [] 
for user in users: 
    for page in tweepy.Cursor(api.followers_ids, screen_name= user).pages(): 
     ids.extend(page) 
     time.sleep(60) 
     for userids in ids: 
      handles.append(user) 

當我運行的循環,但是我得到一個錯誤:

ids我有追隨者

handles正確數量然而,我的總長度是錯誤的

我在做什麼錯了?我想簡單地將每個ID連接到他們所關注的列表中的帳戶。

回答

0

我知道你想從兩個不同長度的列表中構建一個DataFrame。也許我錯了,但這並不明顯,因爲你沒有提供可複製的例子。

在這種情況下,它會產生一個錯誤。

import pandas as pd 
import numpy as np 

handles = ['foo', 'bar', 'doe'] 
ids = [1,2] 

followers_df = pd.DataFrame(
    {'handle': handles, 
    'ids': ids}) 

# ValueError: arrays must all be same length 

如果你想這樣做,你可以使用這個技巧。

pd.concat([pd.DataFrame({'handle': handles}), 
      pd.DataFrame({'ids': ids})], 
      axis=1) 

# handle ids 
# 0 foo 1.0 
# 1 bar 2.0 
# 2 doe NaN 
+0

嗨羅曼,謝謝你的回答。我更新了這個問題,希望它更清楚。 我的問題是,我怎樣才能避免獲得兩種不同長度的列表? 他們應該在理論上相同,但我不明白錯誤來自哪裏! –