我有一个只有一个值的序列,我只想得到那个值。我运行了一个代码,通过索引匹配来获取值,得到了这样一个系列:
(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)
请帮忙。
正如上面所说,您正在尝试将序列转换为不可能的浮点。一个序列可能有几个条目,每个条目不必是浮点数或整数,它可以是任何东西。因此,您必须选择您的特定条目,或者使用(错误的方式):
或者
编辑:链式索引应该避免像以前那样做,下面的方法更好。
如果直接从数据框中选择(而不是从序列正常值和['KWH']中选择),则可以执行以下操作:
或者
我们可以使用Series.at[...]方法查找标量:
使用
loc
关于
at
,请参见@MaxU的答案还有
get_value
当日期不在索引中时返回零,可以
相关问题 更多 >
编程相关推荐