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']