Абстрактное значение в ячейке CSV с использованием Regex в Python - PullRequest
0 голосов
/ 30 апреля 2019

Я абстрагирую числовое значение от столбца csv, например:

column=[None, you earn 5%] 

Было бы здорово, если бы он мог хранить «None» как 0 и просто 5% для второго.

Я пытался перенести% с помощью следующего кода.Но это вызывает ошибку как

«Ошибка типа: ожидаемая строка или байтовоподобный объект»

data.loc[(data['column'] == re.findall(r'([\w]+)', data['column'])), 'disc'] = re.findall(r'([0-9]+\%)',data['column'])

И для цикла.Но не показалось полезным

def fs(a):
    for i in a:
        if i == 'None':
            a[i] = 0
        else:
            a[i]=re.search(r'(?<=\().+?(?=\))', a[i])

1 Ответ

0 голосов
/ 30 апреля 2019

Если у вас есть фрейм данных со строковым столбцом, и вы хотите заменить строку «Нет» на 0, а также сохранить числа и%, тогда выполните:

df.textColumn.str.replace("None","0").str.replace("[^0-9.%]", "")

Пример:

import pandas as pd

df = pd.DataFrame({'n':[1,2,3,4], 'text':["None","you earn 5%", "this is 3.4%", "5.5"]})

df['text'] = df.text.str.replace("None","0").str.replace("[^0-9.%]", "")

df

n   text
0   1   0
1   2   5%
2   3   3.4%
3   4   5.5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...