首页 > 解决方案 > 'float' 对象不可下标。循环并保存到 csv 错误

问题描述

我想遍历一些列表对象,并将结果保存到.csv文件中。

当我运行我的代码时:

    for i in dfxz:
           meanVal = np.mean(dfxz[i])
           varianceVal = np.var(dfxz[i])
           skewVal = skew(dfxz[i])
           kurtVal = kurtosis(dfxz[i])
       
           try:
               csv = open('tabel.csv', 'a')
               csv.write(
                   str(meanVal) + ',' + str(varianceVal) + ',' + str(skewVal[0]) + ',' + str(kurtVal[0]) + ',' + '1' + '\n'
            )
           except IOError as error:
               print('failed to print', error)
        
           csv.close()

我收到以下错误消息:

TypeError                                 Traceback (most recent call last) <ipython-input-12-4c672d5a979c> in <module>
      8         csv = open('tabel.csv', 'a')
      9         csv.write(
---> 10             str(meanVal) + ',' + str(varianceVal) + ',' + str(skewVal[0]) + ',' + str(kurtVal[0]) + ',' + '1' + '\n'
     11         )
     12     except IOError as error:

TypeError: 'float' object is not subscriptable

我已经将我的值转换pandas.DataFrameintfrom float,但无济于事。

我做错了什么?

标签: pythonpandasdataframenumpy

解决方案


这里 :

meanVal = np.mean(dfxz[i])
varianceVal = np.var(dfxz[i])
skewVal = skew(dfxz[i])
kurtVal = kurtosis(dfxz[i])

您从列表中提取值,在这里:

... str(skewVal[0]) ...

和这里:

... str(kurtVal[0]) ...

您尝试从 value 中提取位置0中的值,因此您收到上述异常。

干杯。


推荐阅读