Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:列表索引必须是整数,而不是浮点';,u';发生在索引0处。Python3.x_Python_Typeerror - Fatal编程技术网

错误:列表索引必须是整数,而不是浮点';,u';发生在索引0处。Python3.x

错误:列表索引必须是整数,而不是浮点';,u';发生在索引0处。Python3.x,python,typeerror,Python,Typeerror,尝试将教程应用于我自己的一些数据。教程链接: 我在[3]代码框中进行操作 当试图定义用于打印的颜色映射时,我遇到错误“TypeError:(‘列表索引必须是整数,而不是浮点’,u’出现在索引0’” 我已将代码粘贴到下面。提前感谢, import pandas as pd # Load data data = pd.read_csv('BHPAND.csv') data.describe() data['BH'] = data['BH'].astype('category') data['FM

尝试将教程应用于我自己的一些数据。教程链接:

我在[3]代码框中进行操作

当试图定义用于打印的颜色映射时,我遇到错误“TypeError:(‘列表索引必须是整数,而不是浮点’,u’出现在索引0’”

我已将代码粘贴到下面。提前感谢,

import pandas as pd

# Load data
data = pd.read_csv('BHPAND.csv')
data.describe()
data['BH'] = data['BH'].astype('category')
data['FM'] = data['FM'].astype('category')
data['SBTN'] = data['SBTN'].astype('category')
# Set names of Borehole UID's
data['BH'].unique()

# Define colours for facies based on SBTn
# 1=sensitive fine grained  2=organic clay   3=silty clay to clay 
# 4=silt mixtures 5=sand mixtures 6=sands 7=gravelly sand
# 8=very stiff sand/clay sand 9=highly overconsolidated fine grained
sbtn_colours = ['#5E5E56', '#1E1E1C','#AAAA96','#788E6D',
       '#C6C57D','#FFFC3F', '#AED6F1', '#BA4D2C', '#FF008C']
sbtn_labels = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
#sbtn_colour_map = dictionary that maps sbtn labels to colours
sbtn_colour_map = {}
for ind, label in enumerate(sbtn_labels):
    sbtn_colour_map[label] = sbtn_colours[ind]

def label_sbtn(row, labels):
    return labels[ row['SBTN'] -1]

data.loc[:,'sbtnLabels'] = data.apply(lambda row: label_sbtn(row, sbtn_labels), axis=1)
检查我的数据类型时,我可以看到SBTN被记录为一个类别:

data.dtypes
Out[##]: 
BH       category
MD        float64
DR        float64
FM       category
RHOB      float64
M_MOD     float64
PHI       float64
RES       float64
SBTN     category
SU        float64
VP        float64
Z         float64
dtype: object
这里的问题是我的列SBTN是一个类别而不是int吗?基本上,我想为每个SBTN类型定义一个使用十六进制颜色的颜色映射。在原始csv文件中,SBTN是一个整数

完全错误回溯:

        %run "C:\Users\black\Desktop\Pandas Facies\script1.py"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
C:\Users\black\Desktop\Pandas Facies\script1.py in <module>()
     25     return labels[ row['SBTN'] -1]
     26 
---> 27 data.loc[:,'sbtnLabels'] = data.apply(lambda row: label_sbtn(row, sbtn_labels), axis=1)
     28 
     29 

C:\Users\black\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\core\frame.pyc in apply(self, func, axis, broadcast, raw, reduce, args, **kwds)
   4150                     if reduce is None:
   4151                         reduce = True
-> 4152                     return self._apply_standard(f, axis, reduce=reduce)
   4153             else:
   4154                 return self._apply_broadcast(f, axis)

C:\Users\black\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\core\frame.pyc in _apply_standard(self, func, axis, ignore_failures, reduce)
   4246             try:
   4247                 for i, v in enumerate(series_gen):
-> 4248                     results[i] = func(v)
   4249                     keys.append(v.name)
   4250             except Exception as e:

C:\Users\black\Desktop\Pandas Facies\script1.py in <lambda>(row)
     25     return labels[ row['SBTN'] -1]
     26 
---> 27 data.loc[:,'sbtnLabels'] = data.apply(lambda row: label_sbtn(row, sbtn_labels), axis=1)
     28 
     29 

C:\Users\black\Desktop\Pandas Facies\script1.py in label_sbtn(row, labels)
     23 
     24 def label_sbtn(row, labels):
---> 25     return labels[ row['SBTN'] -1]
     26 
     27 data.loc[:,'sbtnLabels'] = data.apply(lambda row: label_sbtn(row, sbtn_labels), axis=1)

TypeError: ('list indices must be integers, not float', u'occurred at index 0') 
%运行“C:\Users\black\Desktop\script1.py”
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
C:\Users\black\Desktop\script1.py in()
25返回标签[第['SBTN']-1行]
26
--->27 data.loc[:,'sbtnLabels']=data.apply(lambda行:label_sbtn(行,sbtn_标签),axis=1)
28
29
C:\Users\black\AppData\Local\enthught\Canopy\User\lib\site packages\pandas\core\frame.pyc在应用中(self、func、axis、broadcast、raw、reduce、args、**kwds)
4150如果reduce为None:
4151 reduce=True
->4152返回自身。应用标准(f,轴,减少=减少)
4153其他:
4154返回自应用广播(f轴)
C:\Users\black\AppData\Local\enthught\Canopy\User\lib\site packages\pandas\core\frame.pyc在应用标准中(self、func、axis、ignore\u failures、reduce)
4246尝试:
4247用于枚举中的i、v(系列):
->4248结果[i]=func(v)
4249键。追加(v.name)
4250例外情况除外,如e:
C:\Users\black\Desktop\script1.py in(行)
25返回标签[第['SBTN']-1行]
26
--->27 data.loc[:,'sbtnLabels']=data.apply(lambda行:label_sbtn(行,sbtn_标签),axis=1)
28
29
标签(行,标签)中的C:\Users\black\Desktop\script1.py
23
24 def标签(世界其他地区,标签):
--->25返回标签[第['SBTN']-1行]
26
27 data.loc[:,'sbtnLabels']=data.apply(lambda行:label_sbtn(行,sbtn_标签),axis=1)
TypeError:(“列表索引必须是整数,而不是浮点”,u“出现在索引0”处)

该错误意味着
行['SBTN']
是浮点。将其转换为带有
int
的整数,即
标签[int(行['SBTN'])-1]
。您可能需要首先确保它确实是浮点类型的整数,即
断言行['SBTN']==int(行['SBTN'])

在提问时始终发布错误的完整回溯。查看错误发生的位置很重要。抱歉,现在更新。没错!谢谢