如何将一系列的一个值转换为仅浮点数?

新手上路,请多包涵

我有一个只有一个值的系列,我只想获得该值。我运行了一个代码来通过索引匹配获取值,我得到了这样一个系列:

 (normal_sum['KWH'][(normal_sum['KWH'].index == date)])

Timestamp
2017-04-02    2934.93
Freq: D, Name: KWH, dtype: float64

但是当我试图通过这个将它转换成一个浮点数时:

 float(normal_sum['KWH'][(normal_sum['KWH'].index == date)])

它抛出一个错误:

 TypeError: cannot convert the series to <type 'float'>

预期输出:2934.93

任何帮助,将不胜感激。

有一个编辑:

我面临另一个问题:

假设我得到一个空系列,那么我怎样才能将它转换为零。

我这样做了:

 (normal_sum['KWH'][(normal_sum['KWH'].index == date)])

有这样一个系列:

 Series([], Freq: D, Name: KWH, dtype: float64)

请帮忙。

原文由 Dheeraj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 393
2 个回答

使用 loc

 normal_sum.loc[date, 'KWH']

请参阅@MaxU 对 at 的回答


还有 get_value

 normal_sum.get_value(date, 'KWH')

要在日期不在索引中时返回零,您可以

normal_sum.KWH.get(date, 0)

原文由 piRSquared 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果数据系列中只有一个元素,您可以通过调用 tolist() 并通过引用 [0] 获取新列表的第一个元素,将其转换为列表。

原文由 Hillary 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题