Вот мой небольшой образец данных:
import pandas as pd
import numpy as np
size = 10000
arr1 = np.tile([1/5000,1/12000,1/7000], (size,1))
df = pd.DataFrame(arr1, columns = ['col1','col2','col3'])
df[['col1','col2','col3']] = df[['col1', 'col2', 'col3']].astype(str)
Я хочу использовать строковый метод pandas для преобразования строк 'col1', ' col2' and 'col3' в строки с 10 десятичными знаками (так что '0.0002' becomes '0.0002000000', '8.333333333333333e-05' becomes '0.0000833333' и '0.00014285714285714287' becomes '0.0001428571'). Какой самый питонический способ добиться этого?
РЕДАКТИРОВАТЬ1:
Добавлен еще один столбец, чтобы лучше представить мою маленькую проблему
EDIT2: я хочу упомянуть, что я знаю, что df.apply() и df.applymap() существуют, и они могут выполнить свою работу, но, учитывая производительность, я ищу векторизованный способ добиться этого. Поэтому я предпочитаю строковые методы pandas. Конечно, если никакие такие строковые методы не могут достичь моей цели, то я с радостью приму верхний ответ.






Вы можете использовать метод дф.раунд().
df.round(10)
df.round({'Col_1': 10, 'Col_3':10})
decimals = pd.Series([10, 10, 10], index=['Col_1', 'Col_2', 'Col_3'])
df.round(decimals)
Для получения более подробной информации вы можете посетить приведенный ниже пример Ссылка: https://pandas.pydata.org/pandasdocs/version/0.22/generated/pandas.DataFrame.round.html