Python 使用数据帧强制truediv

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

在pandas中,您可以使用除法运算符
/
(自动执行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())