#定义函数,用于提取份量数据,也用于将字符串转化为整数,方便后面计算处理 def getLambda(x, p1, p2): try: val = float(re.findall(p1,x)[0]) except: #提取的是fl oz,也就是美制液体盎司,需要乘以29.57转换为ml val = float(re.findall(p2,x)[0]) * 29.57 return val #调整food数据集,计算每100克的卡路里,脂肪,碳水化合物,钠,膳食纤维,蛋白质 per100_food = food.iloc[:,:] #应用提取函数 per100_food["分量"] = per100_food["分量"].apply(lambda x: getLambda(x, p1, p2)),代码报错:TypeError: expected string or bytes-like object
时间: 2024-03-09 16:44:22 浏览: 43
STM32串口实验+自定义协议接收16进制数据+发送1个(2个)字符+发送字符串函数.zip
这个错误通常出现在使用了不支持字符串的函数或方法时,可能是因为某些列中包含了非字符串类型的数据。在此情况下,可以使用`.astype()`将相关列转换为字符串类型。您可以尝试在处理数据前,将相关列转换为字符串类型,例如:
```python
food['分量'] = food['分量'].astype(str)
```
这样就可以在应用`getLambda`函数时避免上述错误。
阅读全文