如何在pandas数据框中使用0值进行日志

时间:2018-07-21 11:28:18

标签: python pandas numpy

如何将numpy日志函数应用于其中具有0个值的熊猫数据框?

这是我要转换的数据框内系列的示例

df = pd.DataFrame({'CoapplicantIncome': [0, 1508.0, 0, 2358.0, 0],
                   'ApplicantIncome': [5849, 4583, 3000, 2583, 6000]})


    ApplicantIncome  CoapplicantIncome

0             5849                0.0
1             4583             1508.0
2             3000                0.0
3             2583             2358.0
4             6000                0.0

我尝试使用

df['CoapplicantIncome'] = np.log(df['CoapplicantIncome'])

但是它说'无法将float NaN转换为整数'

经过一些搜索之后,我来到了这行代码,说它将处理0个值。

df['CoapplicantIncome'] = np.log(df['CoapplicantIncome'].replace(0, np.nan))

但是它仍然说“不能将float NaN转换为整数”。那我该如何解决呢?

有趣的是,如果我使用pd.DataFrame从头开始构建此数据帧,则不会发生此问题,但是,如果我从csv文件中读取数据帧,则会出现此问题。

1 个答案:

答案 0 :(得分:2)

通过更新我的熊猫版本来解决此问题。