【问题标题】:TypeError: 'numpy.float64' object cannot be interpreted as an integer fake news detectionTypeError:“numpy.float64”对象不能解释为整数假新闻检测
【发布时间】:2021-03-23 08:20:02
【问题描述】:

我收到此错误,无法解决,也无法在 Internet 上找到它。

    TypeError: 'numpy.float64' object cannot be interpreted as an integer
TypeError                                 Traceback (most recent call last)
<ipython-input-10-33f2a17ec582> in <module>
     20         print("Saving New CSV file")
     21 if __name__=='__main__':
---> 22         dataSetExtraction()

<ipython-input-10-33f2a17ec582> in dataSetExtraction()
      6         dfReal=processRealNewsDataFrame(dfReal)
      7         dfCombine=[]
----> 8         for d in extractTopRealResultsForCrawling(dfReal):
      9                 print('len of datadrame :',d['URL'].size)
     10                 #d=d[:100]

<ipython-input-6-9dbfd3f21499> in extractTopRealResultsForCrawling(dfReal)
      6     listOfIndex=[]
      7     df=[]
----> 8     for i in range(0,loop):
      9         listOfIndex.append(dfReal[i*10000:(i+1)*10000])
     10         df+=[dfReal[i*10000:(i+1)*10000]]

TypeError: 'numpy.float64' object cannot be interpreted as an integer

这是给出错误的代码。我无法删除错误请帮助我

def extractTopRealResultsForCrawling(dfReal):
    print("Retrieve top 20000 Real news data")
    num=dfReal.size
    loop=num/10000
    listOfIndex=[]
    df=[]
    for i in range(0,loop):
        listOfIndex.append(dfReal[i*10000:(i+1)*10000])
        df+=[dfReal[i*10000:(i+1)*10000]]   
    #print "length of dataframe array retrieved:",len(df[0])
    return df[:LEN]

【问题讨论】:

  • 发布的信息不够,发布示例代码有帮助
  • 那么,您阅读错误信息了吗?你明白什么是整数吗?你知道'numpy.float64' object 是什么吗?这个“不能被解释为整数”对你来说有意义吗?为什么或者为什么不?你明白为什么代码在这里尝试使用整数吗?你知道是哪个值导致了问题吗?你期待它已经是一个整数了吗?为什么或为什么不?
  • stackoverflow.com/questions/24003431/… 有帮助吗?我通过将您的问题的标题复制并粘贴到搜索引擎中找到了它。这是第一个结果。当您说您“无法解决它,无法在互联网上找到它”时,究竟做了什么?

标签: python numpy


【解决方案1】:

range 函数只能接收整数

这是重现(或多或少)问题的最小代码:

>>> a = 2.0
>>> [i for i in range(a)]
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    [i for i in range(a)]
TypeError: 'float' object cannot be interpreted as an integer

您需要将值转换为整数

>>> [i for i in range(int(a))]
[0, 1]

在你的代码中你应该使用:

for i in range(int(loop)):

或者,您可以这样做:

for i in range(0, num, 10000):
    listOfIndex.append(dfReal[i:i+10000])
    df+=[dfReal[i:i+10000]]

避免分裂...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多