Функция python .T преобразует значения в научную нотацию [duplicate]

Исправлена ​​проблема в моем случае:

Щелкните правой кнопкой мыши по проекту / классу, который вы хотите запустить, затем Run As -> Run Configurations. Затем вы должны либо исправить существующую конфигурацию, либо добавить новое следующим образом:

откройте вкладку Classpath, нажмите кнопку Advanced..., затем добавьте папку bin вашего проекта.

13
задан zhangyangyu 19 July 2013 в 03:43
поделиться

4 ответа

Ваши данные, вероятно, object dtype. Это прямая копия / вставка ваших данных. read_csv интерпретирует его как правильный тип. Обычно вы должны иметь только object dtype в строковых полях.

In [5]: df = read_csv(StringIO(data),sep='\s+')

In [6]: df
Out[6]: 
           id     value
id       1.00 -0.422000
value   -0.42  1.000000
percent -0.72  0.100000
played   0.03 -0.043500
money   -0.22  0.337000
other     NaN       NaN
sy      -0.03  0.000219
sz      -0.33  0.383000

проверить, являются ли ваши типы dtypes object

In [7]: df.dtypes
Out[7]: 
id       float64
value    float64
dtype: object

Это преобразует этот кадр в object dtype (обратите внимание, что сейчас смешно)

In [8]: df.astype(object)
Out[8]: 
           id     value
id          1    -0.422
value   -0.42         1
percent -0.72       0.1
played   0.03   -0.0435
money   -0.22     0.337
other     NaN       NaN
sy      -0.03  0.000219
sz      -0.33     0.383

Вот как это сделать (astype(float)) также работает здесь

In [9]: df.astype(object).convert_objects()
Out[9]: 
           id     value
id       1.00 -0.422000
value   -0.42  1.000000
percent -0.72  0.100000
played   0.03 -0.043500
money   -0.22  0.337000
other     NaN       NaN
sy      -0.03  0.000219
sz      -0.33  0.383000

Это то, что object dtype будет выглядеть как

In [10]: df.astype(object).dtypes
Out[10]: 
id       object
value    object
dtype: object
7
ответ дан Jeff 25 August 2018 в 21:33
поделиться
df["column"]).describe().apply(lambda x: format(x, 'f'))

Поскольку функция описывает возврат кадра данных, то, что делает вышеуказанная функция, оно просто форматирует каждую строку в обычный формат. Я написал этот ответ, потому что у меня было, хотя в моем сознании, было бессмысленно получать счет 95 как 95.00000e + 01. Также в нашем обычном формате его легче сравнивать.

Перед применением указанной функции мы получали

count    9.500000e+01
mean     5.621943e+05
std      2.716369e+06
min      4.770000e+02
25%      2.118160e+05
50%      2.599960e+05
75%      3.121170e+05
max      2.670423e+07
Name: salary, dtype: float64

. После применения мы получаем

count          95.000000
mean       562194.294737
std       2716369.154553
min           477.000000
25%        211816.000000
50%        259996.000000
75%        312117.000000
max      26704229.000000
Name: salary, dtype: object

, если это помогло:)

Тот же ответ изначально был опубликован в Ответ на столбец здесь

3
ответ дан Ash Upadhyay 25 August 2018 в 21:33
поделиться

быстрый временной: df.round(4)

глобальный: pd.options.display.float_format = '{:20,.2f}'.format

22
ответ дан citynorman 25 August 2018 в 21:33
поделиться

Если вы хотите использовать значения в виде форматированной строки в списке, например, как часть csvfile csv.writier, числа могут быть сформированы перед созданием списка:

df['label'].apply(lambda x: '%.17f' % x).values.tolist()
0
ответ дан evil242 25 August 2018 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: