Как обновить значения фрейма данных до 2 десятичных знаков и добавить префикс% для указания c значений столбца в фрейме данных - PullRequest
0 голосов
/ 07 августа 2020

Это значения в фрейме данных, и необходимо преобразовать это значение в 2 десятичных знака со знаком%. Также необходимо игнорировать или удалять целые числа в квадратных скобках.

Для этого Am используется код ниже

data_=[['100.000% (100.000%)','100.000% (100.000%)'],['000.000% (100.000%)','000.000% (100.000%)']]

df['data'] = df['data'].str.split(r'%').str.get(0).astype(float)

Но это дается мне 100.0

df['data']=df['data'].round(decimals=1)

Также пробовал этот, но тот же outpot 100.0

Сообщите мне о любом подходящем подходе для выполнения этого.

Ожидаемый вывод Dataframe должен иметь это значение. 100,00%

1 Ответ

0 голосов
/ 07 августа 2020

Поскольку у вас есть строки в вашем pandas фрейме данных, я предлагаю комбинацию регулярного выражения и метода pandas apply().

Думаю, ваш DataFrame выглядит так:

import pandas as pd
import re

df = pd.DataFrame({'data':['100.000% (100.000%)','000.000% (100.000%)','000.000% (100.000%)']})
df

initial dataframe

Now your can run this line, which will substitute the input string with the match of the group. The first groupp is any digit with more than one number followed by a dot and two more digits. This sign ^ is for the start of the string and this .* will match all the other string elemtes till the end $.

df['data'] = df.data.apply(lambda x: re.sub('^(\d+\.\d{2}).*$', '\g<1>%', x))
df

This returns

after apply

If you want to know more about regular expressions, please check the documentation of регулярные выражения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...