Python 如何将一个值的序列转换为仅浮点?
我有一个只有一个值的序列,我只想得到那个值。我运行了一个代码,通过索引匹配得到值,得到了如下序列:Python 如何将一个值的序列转换为仅浮点?,python,pandas,dataframe,series,Python,Pandas,Dataframe,Series,我有一个只有一个值的序列,我只想得到那个值。我运行了一个代码,通过索引匹配得到值,得到了如下序列: (normal_sum['KWH'][(normal_sum['KWH'].index == date)]) Timestamp 2017-04-02 2934.93 Freq: D, Name: KWH, dtype: float64 Series([], Freq: D, Name: KWH, dtype: float64) 但当我试图通过以下方式将其转换为浮点: float(no
(normal_sum['KWH'][(normal_sum['KWH'].index == date)])
Timestamp
2017-04-02 2934.93
Freq: D, Name: KWH, dtype: float64
Series([], Freq: D, Name: KWH, dtype: float64)
但当我试图通过以下方式将其转换为浮点:
float(normal_sum['KWH'][(normal_sum['KWH'].index == date)])
它抛出了一个错误:
TypeError: cannot convert the series to <type 'float'>
有这样一个系列:
(normal_sum['KWH'][(normal_sum['KWH'].index == date)])
Timestamp
2017-04-02 2934.93
Freq: D, Name: KWH, dtype: float64
Series([], Freq: D, Name: KWH, dtype: float64)
请帮助。使用loc
normal_sum.loc[date, 'KWH']
参见@MaxU在
同时
获取值
normal_sum.get_value(date, 'KWH')
若要在日期不在索引中时返回零,可以
normal_sum.KWH.get(date, 0)
我们可以使用方法进行标量查找:
In [138]: normal_sum = pd.Series([1.234], index=['KWH'])
In [139]: normal_sum
Out[139]:
KWH 1.234
dtype: float64
In [140]: normal_sum.at['KWH']
Out[140]: 1.234
正如它所说的,您正试图将一个系列转换为一个浮点,这是不可能的。一个序列可能有几个条目,每个条目不必是浮点或整数,它可以是任何东西。因此,您必须选择您的特定条目,或者使用(坏方法): 或 编辑:应避免像以前那样进行链索引,以下方法更好 如果您直接从数据帧中选择(而不是从序列正常值总和['KWH']),您只需执行以下操作:
normal_sum.iloc[0,0]
或
如果数据系列中只有一个元素,则可以通过调用
tolist()
将其转换为列表,并通过引用[0]
获取新列表的第一个元素,链式索引不是一种好做法。另外,normal\u sum.iloc[date,'KWH']
也不起作用。我是说,只是iloc的一个输入错误。我还添加了对链接索引的编辑。假设通过匹配索引得到一个空序列,那么我将如何将值返回为0。@Dheeraj我已添加到我的帖子中
normal_sum.iloc[0,0]
normal_sum.loc[date, 'KWH']