Python开发遇到的一些问题
1.SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
原因:python中的“变量”其实是一个“标签”,而不是一个“容器”。“链式索引”(chained indexing)而引起的错误或警告!
解决警告的方案:
在截取数据的语句后加一个.copy()复制一份数据给df就可以了。
使用 DafaFrameming.loc[行名, 列名] = 值 的方式去赋值, 而不是使用DataFrame[]的形式去赋值。
如果要更改原始数据,请使用单一赋值操作(loc):
如果想要一个副本,请确保强制让 Pandas 创建副本(.copy()):
强烈不推荐直接关闭警告
2.ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
两个比较的数,数据类型不匹配
df.astype(int)强制类型转换
df.JAN_STOCK.apply(Decimal)
Decimal(df.get("JAN_STOCK").get(i))
df1 = df2.apply(pd.to_numeric(), errors = 'ignore') 转换成适当数值类型,遇到错误忽略不转换该列
3.'str' object has no attribute 'apply'
采取该方式转换类型:Decimal(df.get("JAN_STOCK").get(i))