我创建了一个多索引的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)
答案 0 :(得分:0)
您可以使用to_numeric这将为您提供float32
或np.float32(x)
然后x.item()将为您提供python float