将float64类型的DataFrame转换为在Python中浮动

时间:2018-10-20 07:52:14

标签: python pandas dataframe

我创建了一个多索引的DataFrame,其中我将groupby与均值一起使用。

在检查任何特定值的数据类型时

(使用ChkVlu = df.loc['Index1'].loc['index2'].loc['requiredcolumn']

我得到的数据类型为numpy.float64。我要求数据类型为本地python float。

如果我使用ChkVlu = float(ChkVlu),则一次只能将一个值从float64转换为float,但是对于整个DataFrame使用df = df.astype(float)时,我仍然得到的数据类型为numpy.float64。

我同时使用了df = df.astype(float, copy=False)df = df.astype(float, copy=True),但仍然使用float64而不是浮点数。

请帮助我将float64类型的DataFrame转换为float。

Edit1: 在此处发布代码,其中AnnualData.csv将索引1和index2作为第1 2列,并将年月组合作为下一组列,格式为2001-01、2001-02、2001-03 ....... 2016- 09、2016-10、2016-11,每行都有数值数据。 我正在按列名分别为q1,q2等等的季度转换数据,以此类推,每个季度的平均值。

 df = pd.read_csv(‘AnnualData.csv')
 df.set_index(['index1, 'index2'],inplace = True)
 def quarters(col):
  if col.endswith(("01", "02", "03")):
   final_col = col[:4] + "q1"
  elif col.endswith(("04", "05", "06")):
   final_col = col[:4] + "q2"
  elif col.endswith(("07", "08", "09")):
   final_col = col[:4] + "q3"
  else:
   final_col = col[:4] + "q4"
  return final_col  
df = df.groupby(quarters, axis = 1).mean()
ChkVlu = df.loc['index1'].loc['index2'].loc['requiredcolumn']
type(ChkVlu)

1 个答案:

答案 0 :(得分:0)

您可以使用to_numeric这将为您提供float32

或np.float32(x)

然后x.item()将为您提供python float