Pandas - 将值提取到基本的python float

lte*_*e__ 5 python pandas

我正在尝试从pandas数据帧中提取一个单元格到一个简单的浮点数.我尝试着

prediction = pd.to_numeric(baseline.ix[(baseline['Weekday']==5) & (baseline['Hour'] == 8)]['SmsOut'])
Run Code Online (Sandbox Code Playgroud)

但是,这会回来

128   -0.001405
Name: SmsOut, dtype: float64
Run Code Online (Sandbox Code Playgroud)

我希望它只返回一个simle Python float:-0.001405 我该怎么做?

jez*_*ael 8

输出Series只有一个值,因此有更多可能的解决方案:

  • 转换为numpy arraybyto_numpy并通过索引选择第一个值
  • iloc通过或按位置选择iat
prediction = pd.to_numeric(baseline.loc[(baseline['Weekday'] ==5 ) & 
                                        (baseline['Hour'] == 8), 'SmsOut'])

print (prediction.to_numpy()[0])

print (prediction.iloc[0])
print (prediction.iat[0])
Run Code Online (Sandbox Code Playgroud)

样本:

baseline = pd.DataFrame({'Weekday':[5,3], 
                         'Hour':[8,4], 
                         'SmsOut':[-0.001405,6]}, index=[128,130])
print (baseline)
     Hour    SmsOut  Weekday
128     8 -0.001405        5
130     4  6.000000        3

prediction = pd.to_numeric(baseline.loc[(baseline['Weekday'] ==5 ) & 
                                        (baseline['Hour'] == 8), 'SmsOut'])

print (prediction)
128   -0.001405
Name: SmsOut, dtype: float64

print (prediction.to_numpy()[0])
-0.001405
print (prediction.iloc[0])
-0.001405
print (prediction.iat[0])
-0.001405
Run Code Online (Sandbox Code Playgroud)