Отображать научную нотацию только для определенных столбцов, Pandas Dataframe

#python #pandas #dataframe

#python #pandas #dataframe

Вопрос:

Я пытаюсь отобразить результаты из фрейма данных pandas, который содержит небольшие числа.

 dict1 = {
    'Name':['one', 'two', 'three', 'four'],
    'R1 (V)':[1.1,2.2,3.3,4.4],
    'R2 (mV)':[1.1e-3,2.2e-3,3.3e-3,4.4e-3],
    'R3 (uV)':[1.1e-6,2.2e-6,3.3e-6,4.4e-6],
    'R4 (nV)':[1.1e-9,2.2e-9,3.3e-3,4.4e-9],
    'R5 (pV)':[1.1e-12,2.2e-12,3.3e-12,4.4e-12]
}

df = pd.DataFrame.from_dict(dict1)
  

Выходной фрейм данных

В моем примере здесь я хочу изменить R3 на научную нотацию (1.1e-6, 2.2e-6, …) без изменения способа отображения других столбцов

Ответ №1:

попробуйте отредактировать формат вашего фрейма данных следующим образом:

 df.style.format({'R3 (uV)': "{:.2E}"})
  

это выведет фрейм данных с R3 в научной нотации, но если вы попытаетесь снова отобразить фрейм данных, вам придется повторить эту процедуру, потому что формат не является постоянным

Комментарии:

1. Это изменяет столбец ‘R3 (uV)’, но также изменяет формат других столбцов

2. вы можете использовать это для определения формата каждого столбца

Ответ №2:

Вы можете преобразовать значения в строки и применить нужные обозначения.

 df['R3 (uV)'] = df['R3 (uV)'].apply(lambda val: '%.2E' % val)
  

Комментарии:

1. делая это, вы потеряете свои данные, преобразовав их в str. Используйте pandas.io.formats.style.Styler вместо