python中整数类型的数值一定不会出现小数点_错误:列表索引必须是整数,而不是浮点型,出现在索引0处。Python 3.x版...

我要进入[3]密码箱了。在

当试图定义用于绘图的颜色映射时,我得到错误“TypeError:('list index must be integers,not float',u'occurred at index 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被记录为一个类别:

^{pr2}$

这里的问题是,我的专栏SBTN是一个category而不是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 ()

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 (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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值