Панды Плавающие десятичные - PullRequest
1 голос
/ 24 октября 2019

Я пытаюсь записать в csv pandas DataFrame со столбцом с различными типами данных. Мне нужно, чтобы все значения с плавающей запятой имели ровно 4 десятичных знака.

Например. Я определяю новый df:

df=pd.DataFrame({'col1': [0.24567899874, 'a'], 'col2' : [0.123456789, 1] })

и затем записываю его в файл csv с помощью float_format:

df.to_csv('example.csv', float_format='%.4f')

Я получаю результат: col1, col2 0.24999999999986597,0.1234 a, 1.0000

Похоже, что float_format применяется только к столбцам, в которых все их элементы являются числовыми значениями.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вы можете сделать это:

for col in df.columns:
    df[col] = df[col].apply(lambda x: '{:.4f}'.format(x) if type(x) is int or type(x) is float else x)

df.to_csv('example.csv')

0 голосов
/ 24 октября 2019
for col in df.columns:
    if df[col].dtype == 'float':
        df[col].round(4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...