建议运用pandas进行列运算时,采用eval函数,不要用 df['列B'] = df['列A'] * 34
pandas读取excel文件进行运算与直接用DataFrame计算结果可能不一致,原因我也不懂。
方法1:计算正确
df = pd.read_excel()
df.insert(17, ‘aa’, 0)
df[‘aa’] = df[‘bb’] *3
df[‘aa’]计算正确
方法2:计算错误
上文生成的df,不是来自excel
df.insert(17, ‘aa’, 0)
df[‘aa’] = df[‘bb’] *3
df[‘aa’]计算错误
方法3:计算正确
上文生成的df,不是来自excel:解决办法1,先保存成excel,后读取
df.to_excel()
df = df.read_excel()
df.insert(17, ‘aa’, 0)
df[‘aa’] = df[‘bb’] *3
df[‘aa’]计算正确
方法4:计算正确
上文生成的df,不是来自excel:解决办法2,用eval
df.insert(17, ‘aa’, 0)
df.eval(‘aa = bb*3 ', inplace=True)
df[‘aa’]计算正确
网友评论