if row['移动类型'].isin([101,102,122]): AttributeError: 'str' object has no attribute 'isin'
时间: 2024-08-16 18:06:57 浏览: 101
这个错误提示意味着在尝试执行`row['移动类型'].isin([101,102,122])`这行代码时,遇到了问题,因为在当前上下文中`row['移动类型']`是一个字符串(`str`对象),而`isin()`方法通常应用于包含列表或其他序列数据的数据结构,比如Pandas Series,它拥有索引查找功能。
如果你的`移动类型`列原本是字符串类型而不是数字,那么`isin()`方法不会起作用,因为`isintance(row['移动类型'], str)`将会返回True,所以你应该先检查该列的数据类型,并在适当的情况下进行转换。例如,如果需要验证是否匹配特定的整数值,你应该尝试将其转换为整数或者检查其能否被解析成整数:
```python
if isinstance(row['移动类型'], str):
try:
num_type = int(row['移动类型'])
if num_type in [101, 102, 122]:
data.at[index, '入库日期'] = date
else:
data.at[index, '领用日期'] = date
except ValueError:
# 如果转换失败(例如,非数字字符串)
pass
else:
# 如果已经是数字类型
if row['移动类型'] in [101, 102, 122]:
data.at[index, '入库日期'] = date
else:
data.at[index, '领用日期'] = date
data.to_excel('入库&领用.xlsx', index=False)
```
阅读全文