ValueError: invalid literal for int() with base 10: '100M'
时间: 2023-09-14 21:10:40 浏览: 63
Python ValueError: invalid literal for int() with base 10 实用解决方法
根据报错信息,看起来问题出现在尝试将字符串 `'100M'` 转换为整数时。这是因为字符串中包含了非数字字符 `'M'`。
要解决这个问题,你可以修改你的代码,先去除 `'M'` 字符再进行转换为整数。你可以使用字符串的 `strip()` 方法去除字符串两端的空格或其他指定字符,然后再使用 `int()` 函数将剩下的部分转换为整数。
以下是修复代码的示例:
```python
values = ['100M', '40M', '20M', '5M', '80M', '200M']
numeric_values = [int(value.strip('M')) for value in values]
conditions = [
(df1.loc[:, '下行带宽'] == numeric_values[0]) & (df1.loc[:, '下行速率'] < 50),
(df1.loc[:, '下行带宽'] == numeric_values[1]) & (df1.loc[:, '下行速率'] < 30),
(df1.loc[:, '下行带宽'] == numeric_values[2]) & (df1.loc[:, '下行速率'] < 10),
(df1.loc[:, '下行带宽'] == numeric_values[3]) & (df1.loc[:, '下行速率'] < 2.5),
(df1.loc[:, '下行带宽'] == numeric_values[4]) & (df1.loc[:, '下行速率'] < 40),
(df1.loc[:, '下行带宽'] == numeric_values[5]) & (df1.loc[:, '下行速率'] < 100)
]
choices = ['是', '是', '是', '是', '是', '是']
df1['低速率差小区'] = np.select(conditions, choices, default='否')
```
这样,你就可以成功将带有 `'M'` 的字符串转换为整数了。如果你的数据还包含其他单位字符,你可以根据需要进行类似的处理。
如果你还有其他问题或需要进一步帮助,请随时告诉我。
阅读全文