如何将一系列的一个值转换为仅浮点数?
How to convert a series of one value to float only?
我有一个只有一个值的系列,我只想获得那个值。我 运行 一个通过索引匹配获取值的代码,我得到了这样一个系列:
(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)
请帮忙。
使用loc
normal_sum.loc[date, 'KWH']
查看@MaxU 对 at
的回答
还有get_value
normal_sum.get_value(date, 'KWH')
当日期不在索引中时return零,您可以
normal_sum.KWH.get(date, 0)
我们可以使用 Series.at[...] 方法进行 标量 查找:
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
如其所说,您正试图将 Series 转换为 float,这是不可能的。一个系列可能有多个条目,每个条目不必是浮点数或整数,它可以是任何东西。因此,您必须 select 您的特定条目,或者使用(错误的方式):
normal_sum['KWH'].loc[0]
或
normal_sum['KWH'].iloc[date]
编辑:应该避免像以前那样做链索引,下面的方法更好。
如果您 select 直接形成数据框(而不是来自系列 normal_sum['KWH']),您可以这样做:
normal_sum.iloc[0,0]
或
normal_sum.loc[date, 'KWH']
如果数据系列中只有一个元素,您可以通过调用 tolist()
将其转换为列表,并通过引用 [0]
.[=12= 获取新列表的第一个元素]
我有一个只有一个值的系列,我只想获得那个值。我 运行 一个通过索引匹配获取值的代码,我得到了这样一个系列:
(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)
请帮忙。
使用loc
normal_sum.loc[date, 'KWH']
查看@MaxU 对 at
还有get_value
normal_sum.get_value(date, 'KWH')
当日期不在索引中时return零,您可以
normal_sum.KWH.get(date, 0)
我们可以使用 Series.at[...] 方法进行 标量 查找:
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
如其所说,您正试图将 Series 转换为 float,这是不可能的。一个系列可能有多个条目,每个条目不必是浮点数或整数,它可以是任何东西。因此,您必须 select 您的特定条目,或者使用(错误的方式):
normal_sum['KWH'].loc[0]
或
normal_sum['KWH'].iloc[date]
编辑:应该避免像以前那样做链索引,下面的方法更好。
如果您 select 直接形成数据框(而不是来自系列 normal_sum['KWH']),您可以这样做:
normal_sum.iloc[0,0]
或
normal_sum.loc[date, 'KWH']
如果数据系列中只有一个元素,您可以通过调用 tolist()
将其转换为列表,并通过引用 [0]
.[=12= 获取新列表的第一个元素]