1

在 pandas 中,您可以使用除法运算符/(自动执行 truediv)或使用方法来划分数组div()div()很有用,因为您可以显式定义操作的轴;不幸的是,它似乎只执行整数除法,而不是真正的除法。我一直在解决这个问题,总是需要乘以1.或使用astype. 我在某处缺少方法吗?没有truediv方法,我在网上找不到任何东西。(虽然dir显示它确实定义__truediv__并且它支持使用运算符的 truediv /

from __future__ import division
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": np.arange(6)})
print df.A.div(df.A.sum()) # zeros
# print df.A.truediv(df.A.sum()) # no truediv method
print df.A / df.A.sum() # truedivision as expected

假设我没有错过一个方法并且我需要使用div这样我可以指定一个轴,这是在风格上执行此操作的首选方法?(或者,如果适用,哪个更“pythonic”?)

是否首选这样做:

df.A.div(df.A.sum() * 1.0)

或者

df.A.astype(float).div(df.A.sum())

如果除数本身是一个数组,这会改变吗?

4

0 回答 0