ZeroDivisionError: float division error while calculating percentile rank in pandas dataframe
ZeroDivisionError: float division error while calculating percentile rank in pandas dataframe
我正在尝试计算按 "Variable" 分组的子组之间的数值数据排名。
但是某些变量在 value1 中只有 NaN 值。所以我得到 ZeroDivisionError: float division error 。如何解决这个问题
df1.assign(percentile=df1.groupby("variable")['value1'].rank(pct=True)
数据框中的数据 df1
:
Date variable value1
0 2013-09-30 VTL US Equity 3.56
1 2008-02-29 GTXI US Equity NaN
2 2007-07-31 OVID US Equity NaN
3 2001-10-31 HOV US Equity 4.8548
4 2014-12-31 HOV US Equity 2.2006
5 2015-01-31 HOV US Equity 1.7636
6 2015-02-28 HOV US Equity 1.9174
错误:
文件 "pandas_libs\groupby_helper.pxi",在 pandas._libs.groupby.group_rank_float64
ZeroDivisionError:浮动除法
一个选项是在 运行 使用 Dataframe.fillna()
的操作之前用极小的值简单地替换该列中的 NaN
值。
from sys.float_info import epsilon
df1.assign(
percentile = df1.fillna(value={'value1': epsilon}).groupby("variable")['value1'].rank(pct=True)
)
我正在尝试计算按 "Variable" 分组的子组之间的数值数据排名。
但是某些变量在 value1 中只有 NaN 值。所以我得到 ZeroDivisionError: float division error 。如何解决这个问题
df1.assign(percentile=df1.groupby("variable")['value1'].rank(pct=True)
数据框中的数据 df1
:
Date variable value1
0 2013-09-30 VTL US Equity 3.56
1 2008-02-29 GTXI US Equity NaN
2 2007-07-31 OVID US Equity NaN
3 2001-10-31 HOV US Equity 4.8548
4 2014-12-31 HOV US Equity 2.2006
5 2015-01-31 HOV US Equity 1.7636
6 2015-02-28 HOV US Equity 1.9174
错误: 文件 "pandas_libs\groupby_helper.pxi",在 pandas._libs.groupby.group_rank_float64 ZeroDivisionError:浮动除法
一个选项是在 运行 使用 Dataframe.fillna()
的操作之前用极小的值简单地替换该列中的 NaN
值。
from sys.float_info import epsilon
df1.assign(
percentile = df1.fillna(value={'value1': epsilon}).groupby("variable")['value1'].rank(pct=True)
)