我创建了一个多索引的DataFrame,其中我使用了groupby和mean。
检查任何特定值的数据类型
(使用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而不是float。
请帮助我将float64类型DataFrame转换为float。
Edit1 :在这里发布代码,其中AnnualData.csv将索引1和index2作为前2列,年-月组合作为下一组列,格式为2001-01、2001-02、2001-03 ......2016-09、2016-10、2016-11每行都有数字数据。我以季度为单位转换数据,列名为q1、q2等,每个季度的平均值为1。
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)发布于 2018-10-20 16:47:45
您可以使用to_numeric,它将为您提供一个float32
或np.float32(x)
然后x.item()将为您提供python float
https://stackoverflow.com/questions/52903578
复制相似问题