Pandas/Python: 二维直方图因值错误而失败
Pandas/Python: 2D histogram fails with value error
我正在尝试从 Pandas 数据框创建二维直方图 "rates"
X 和 Y 轴应该是从数据帧转换而来的,即 X 和 Y 轴是来自原始帧列的 'scaled',bin 高度根据每个 x/y 中的命中数bin.
import numpy, pylab, pandas
import matplotlib.pyplot as plt
list(rates.columns.values)
['sizes', 'transfers', 'positioning']
x=(rates["sizes"]/1024./1024.)
y=((rates["sizes"]/rates["transfers"])/1024.)+rates["positioning]
所以,我尝试使用
将它们输入到一个 numpy 二维直方图中
histo, xedges, yedges = numpy.histogram2d(x, y, bins=(100,100))
然而,这失败了
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/numpy/lib/twodim_base.py", line 650, in histogram2d
hist, edges = histogramdd([x, y], bins, range, normed, weights)
File "/usr/lib64/python2.7/site-packages/numpy/lib/function_base.py" line 363, in histogramdd
decimal = int(-log10(mindiff)) + 6
ValueError: cannot convert float NaN to integer
我已经在我的框架中删除了所有 NaN 'rates.dropna()' - 但实际上从我猜测的错误来看,这不是由于我的框架中的 NaN。
也许有人有想法,这里出了什么问题?
在@jme 的帮助下,我走上了正确的轨道
我没有检查有问题的值对
x:y = 0.0:inf
显然不是一个好的二维直方图向量,即在转换原始值时我必须捕捉到这种情况。
另一件事:numpy 直方图对我的 DataFrame 系列有一些问题,所以我必须从该系列中获得适当的 numpy.arrary 才能正确绘制它们,例如,
histo, xedges, yedges = np.histogram2d(np.array(x[1:MAX]),np.array(y[1:MAX]), bins=(100,100))
用于将系列切片到某个变量 MAX
我正在尝试从 Pandas 数据框创建二维直方图 "rates" X 和 Y 轴应该是从数据帧转换而来的,即 X 和 Y 轴是来自原始帧列的 'scaled',bin 高度根据每个 x/y 中的命中数bin.
import numpy, pylab, pandas
import matplotlib.pyplot as plt
list(rates.columns.values)
['sizes', 'transfers', 'positioning']
x=(rates["sizes"]/1024./1024.)
y=((rates["sizes"]/rates["transfers"])/1024.)+rates["positioning]
所以,我尝试使用
将它们输入到一个 numpy 二维直方图中histo, xedges, yedges = numpy.histogram2d(x, y, bins=(100,100))
然而,这失败了
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/numpy/lib/twodim_base.py", line 650, in histogram2d
hist, edges = histogramdd([x, y], bins, range, normed, weights)
File "/usr/lib64/python2.7/site-packages/numpy/lib/function_base.py" line 363, in histogramdd
decimal = int(-log10(mindiff)) + 6
ValueError: cannot convert float NaN to integer
我已经在我的框架中删除了所有 NaN 'rates.dropna()' - 但实际上从我猜测的错误来看,这不是由于我的框架中的 NaN。
也许有人有想法,这里出了什么问题?
在@jme 的帮助下,我走上了正确的轨道
我没有检查有问题的值对 x:y = 0.0:inf 显然不是一个好的二维直方图向量,即在转换原始值时我必须捕捉到这种情况。
另一件事:numpy 直方图对我的 DataFrame 系列有一些问题,所以我必须从该系列中获得适当的 numpy.arrary 才能正确绘制它们,例如,
histo, xedges, yedges = np.histogram2d(np.array(x[1:MAX]),np.array(y[1:MAX]), bins=(100,100))
用于将系列切片到某个变量 MAX