Python 使用数据帧强制truediv
在pandas中,您可以使用除法运算符Python 使用数据帧强制truediv,python,python-2.7,numpy,pandas,Python,Python 2.7,Numpy,Pandas,在pandas中,您可以使用除法运算符/(自动执行truediv)或使用方法div()对数组进行除法div()非常有用,因为您可以显式定义操作的轴;不幸的是,它似乎只执行整数除法,而不是真正的除法。我一直碰到这个问题,总是需要乘以1.或使用astype,这很糟糕。我是不是遗漏了一个方法?没有truediv方法,我在网上找不到任何东西。(尽管dir揭示了它确实定义了\uuuu truediv\uuuu,并且它支持带有/操作符的truediv from __future__ import divis
/
(自动执行truediv)或使用方法div()
对数组进行除法div()
非常有用,因为您可以显式定义操作的轴;不幸的是,它似乎只执行整数除法,而不是真正的除法。我一直碰到这个问题,总是需要乘以1.
或使用astype
,这很糟糕。我是不是遗漏了一个方法?没有truediv
方法,我在网上找不到任何东西。(尽管dir
揭示了它确实定义了\uuuu truediv\uuuu
,并且它支持带有/
操作符的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)
或
如果除数是数组本身,这种情况会改变吗?您可以在构造函数中指定dtype,例如
pd.DataFrame({'A':np.arange(6)},dtype='float64')
强制浮点,然后所有div都将为true(另外,我同意应该有一个truediv
方法,如div
,请打开一个问题)您也可以这样做:df.A.\uu truediv\uu(df.A.sum())
,但仅适用于axis=0@Jeff在一个问题上,我也在想同样的事情。你当然可以将dtype设置为float64
,但这并不能解决编写一个你想重用的函数时的问题:)true(双关语);我只是想确定一下,我的2c@Jeff我正在写一个补丁,把它添加到熊猫身上。希望下一个版本会有它。
df.A.astype(float).div(df.A.sum())