建議運用pandas進行列運算時,采用eval函數(shù)嘴高,不要用 df['列B'] = df['列A'] * 34
pandas讀取excel文件進行運算與直接用DataFrame計算結(jié)果可能不一致竿音,原因我也不懂。
方法1:計算正確
df = pd.read_excel()
df.insert(17, ‘a(chǎn)a’, 0)
df[‘a(chǎn)a’] = df[‘bb’] *3
df[‘a(chǎn)a’]計算正確
方法2:計算錯誤
上文生成的df拴驮,不是來自excel
df.insert(17, ‘a(chǎn)a’, 0)
df[‘a(chǎn)a’] = df[‘bb’] *3
df[‘a(chǎn)a’]計算錯誤
方法3:計算正確
上文生成的df春瞬,不是來自excel:解決辦法1,先保存成excel套啤,后讀取
df.to_excel()
df = df.read_excel()
df.insert(17, ‘a(chǎn)a’, 0)
df[‘a(chǎn)a’] = df[‘bb’] *3
df[‘a(chǎn)a’]計算正確
方法4:計算正確
上文生成的df宽气,不是來自excel:解決辦法2,用eval
df.insert(17, ‘a(chǎn)a’, 0)
df.eval(‘a(chǎn)a = bb*3 ', inplace=True)
df[‘a(chǎn)a’]計算正確