我有一个只有一个值的序列,我只想得到那个值。我运行了一个代码,通过索引匹配得到值,我得到了一个如下的序列:
(normal_sum['KWH'][(normal_sum['KWH'].index == date)])
Timestamp
2017-04-02 2934.93
Freq: D, Name: KWH, dtype: float64
字符串
但是当我试图通过这个把它转换成float的时候:
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)
型
请帮帮忙。
5条答案
按热度按时间t3psigkw1#
使用
loc
字符串
请参阅@MaxU对
at
的回答get_value
型
若要在索引中没有日期时返回零,可以
型
vs91vp4v2#
如果数据序列中只有一个元素,你可以通过调用
tolist()
并引用[0]
获取新列表的第一个元素来将其转换为list。5lhxktic3#
我们可以使用Series.at[...]方法进行标量查找:
字符串
uurity8g4#
正如它所说的,你试图将一个系列转换为一个浮动,这是不可能的。一个Series可能有几个条目,每个条目不必是浮点数或整数,它可以是任何东西。所以你必须选择你的特定条目,要么用(坏的方式):
字符串
或者是
型
编辑:应该避免像以前那样做的链式索引,下面的方法更好。
如果您直接从数据框中选择(而不是从Series normal_sum ['KWH']),您可以这样做:
型
或者是
型
h22fl7wq5#
现在(从什么时候开始?))的专用功能:
字符串
该方法的一个优点是,如果不完全是一个项,它将引发异常。