Я создал мультииндексированный DataFrame, в котором я использовал groupby
со средним значением.
При проверке типа данных любого конкретного значения
(используя ChkVlu = df.loc['Index1'].loc['index2'].loc['requiredcolumn']
)
Я получаю тип данных numpy.float64
.Мне требуется тип данных для нативного Python с плавающей точкой.
Если я использую ChkVlu = float(ChkVlu)
, тогда только одно значение за раз преобразуется из float64 в float, однако при использовании df = df.astype(float)
для всего DataFrame я все еще получаю тип данныхбыть numpy.float64.
Я использовал df = df.astype(float, copy=False)
, а также df = df.astype(float, copy=True)
, но все еще получаю float64
вместо числа с плавающей точкой.
Пожалуйста, помогите мне преобразовать тип данных DataFrame float64
в число с плавающей точкой.
Edit1: размещение кода здесь, где AnnualData.csv имеет индекс 1 и index2 как первые 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)