pandas 和“'Nontype' 对象不可调用”

问题描述

我尝试按照此页面中的示例从 twitter 中抓取数据:https://www.earthdatascience.org/courses/use-data-open-source-python/intro-to-apis/twitter-data-in-python/

        # -*- coding: cp852 -*-
    import sys
    sys.modules[__name__].__dict__.clear()
    
    import os
    import tweepy as tw
    import pandas as pd
    
    consumer_key = 'XXX'
    consumer_secret = 'YYY'
    access_token = 'ZZZ'
    access_token_secret = 'BBB'
    print(consumer_key)
    
    auth = tw.OAuthHandler(consumer_key,consumer_secret)
    auth.set_access_token(access_token,access_token_secret)
    api = tw.API(auth,wait_on_rate_limit=True)
    
    
    
    
    # Define the search term and the date_since date as variables
    search_words = "#MERZ"
    date_since = "2021-01-16"
    
    #Collect tweets
    
    tweets = tw.Cursor(api.search,q=search_words,lang = "en",since=date_since).items(5)
    
    for tweet in tweets:
        print(tweet.text.encode('cp1252',errors='ignore'))
    
    print([tweet.text for tweet in tweets])
    
    
    
    
    new_search = search_words + " -filter:retweets"
    #new_search
    
    
    tweets = tw.Cursor(api.search,q=new_search,lang="en",since=date_since).items(5)
    
    print([tweet.text for tweet in tweets])
    
    
    
    tweets = tw.Cursor(api.search,since=date_since).items(5)
    
    users_locs = [[tweet.user.screen_name,tweet.user.location] for tweet in tweets]
    print(users_locs)
    
    
    
    
    tweet_text = pd.DataFrame(data=users_locs,columns=['user',"location"])
print(tweet_text)

但是,我无法打印数据框。错误信息如下:

TypeError: 'nonetype' 对象不可调用

谁能帮帮我。非常感谢您的帮助。谢谢。

编辑 1:我被要求提供更多信息。附上,您可以找到完整的错误消息。

Traceback (most recent call last):
  File "C:\Users\Mustermann\Desktop\tweep\tweep.py",line 59,in <module>
    print(tweet_text)
  File "C:\Users\Mustermann\Anaconda3\lib\site-packages\pandas\core\frame.py",line 744,in __repr__
    self.to_string(
  File "C:\Users\Mustermann\Anaconda3\lib\site-packages\pandas\core\frame.py",line 883,in to_string
    return formatter.to_string(buf=buf,encoding=encoding)
  File "C:\Users\Mustermann\Anaconda3\lib\site-packages\pandas\io\formats\format.py",line 921,in to_string
    return self.get_result(buf=buf,line 520,in get_result
    self.write_result(buf=f)
  File "C:\Users\Mustermann\Anaconda3\lib\site-packages\pandas\io\formats\format.py",line 844,in write_result
    max_len = Series(lines).str.len().max()
  File "C:\Users\Mustermann\Anaconda3\lib\site-packages\pandas\core\generic.py",line 11459,in stat_func
    return self._reduce(
  File "C:\Users\Mustermann\Anaconda3\lib\site-packages\pandas\core\series.py",line 4236,in _reduce
    return op(delegate,skipna=skipna,**kwds)
  File "C:\Users\Mustermann\Anaconda3\lib\site-packages\pandas\core\nanops.py",line 120,in f
    result = bn_func(values,axis=axis,**kwds)
TypeError: 'nonetype' object is not callable
[Finished in 2.306s]

编辑 2:即使在使用 Pandas 的最小示例中,我似乎也遇到了错误。请参阅随附的代码。我也更改了标题

import pandas as pd
import numpy as np

d = {'col1': [1,2],'col2': [3,4]}
print(d)
df = pd.DataFrame(data=d)

df2 = pd.DataFrame(np.array([[1,2,3],[4,5,6],[7,8,9]]),columns=['a','b','c'])
print(df)
print(df2)

解决方法

我不知道解决方法,问题是您试图将 None 对象用作函数(None 意味着什么)。错误消息包含一行,显示哪一行?

,

不确定如何,但我通过重新安装 Anaconda 修复了它。

,

这为我修好了:

pip install bottleneck -U --force-reinstall