#python #pandas
#python #pandas
Вопрос:
Я нормализую свои данные и хочу, наконец, сохранить округленное до 4 цифр число после запятой.
Приведенное ниже утверждение дает мне нормализованный результат, но как мне округлить каждое число до 4-значного числа после запятой.
df_new = df.loc[:,"pos_score":"neg_sub_score"].div(100, axis=0)
Оригинал : 18.685714285714287
После нормализации: .1868
(желательно)
После нормализации: .18685714285714287
(текущий)
Комментарии:
1.
df.loc[:,"pos_score":"neg_sub_score"].div(100, axis=0).round(4)
??2. Я знаком с round (), но я попробую этот способ!
3. Ну, вы всегда можете сделать
float('0.{}0000'.format(str(df_new*100))[:4])
.
Ответ №1:
Если нужны значения этажа, кратные на 100
, преобразуйте в целые числа и разделите на 10000
:
df = pd.DataFrame({'pos_score':[18.68577,18.685714],
'neg_sub_score':[10.23, 12.536]})
print (df)
pos_score neg_sub_score
0 18.685770 10.230
1 18.685714 12.536
df_new1 = df.loc[:,"pos_score":"neg_sub_score"].mul(100).astype(int).div(10000)
print (df_new1)
pos_score neg_sub_score
0 0.1868 0.1023
1 0.1868 0.1253
Но если нужны круглые значения, добавьте DataFrame.round
, но другой результат:
df_new2 = df.loc[:,"pos_score":"neg_sub_score"].div(100).round(4)
print (df_new2)
pos_score neg_sub_score
0 0.1869 0.1023
1 0.1869 0.1254