Как удалить текст справа от столбца фрейма данных - PullRequest
1 голос
/ 07 августа 2020
import pandas as pd

df = pd.read_csv('Transactions.csv', usecols=[0, 1, 3])
KFC = df[df.Description.str.contains("KFC*")]
print(KFC)

В настоящее время у меня есть это транзакция моих банковских выписок, я ищу конкретное c место быстрого питания, это работает нормально, но у меня возникают проблемы с тем, как удалить строку после KF C*

      Date        Description                                Debit
66    30/07/2020  KFC* - Visa Purchase - Receipt 178632I... -40.35
73    29/07/2020  KFC* - Visa Purchase - Receipt 197989I... -27.40
173   17/07/2020  KFC* - Visa Purchase - Receipt 118930I... -45.30
246    2/07/2020  KFC* - Visa Purchase - Receipt 11... -14.95

Я пробовал rstrip, strip, но, похоже, он не работает при поиске определенной строки c. Как лучше всего go заставить его выглядеть так?

Date  Description       Debit
66    30/07/2020  KFC* -40.35
73    29/07/2020  KFC* -27.40
173   17/07/2020  KFC* -45.30
246    2/07/2020  KFC* -14.95

Ответы [ 2 ]

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

Я могу думать о двух способах

Pandas .str аксессор работает с регулярным выражением, поэтому вы можете извлечь шаблон, который ищете, а затем удалить строки, в которых шаблон не был найден

KFC = df.copy()
KFC.Description = KFC.Description.str.extract('(KFC\*)')
KFC.dropna(subset=['Description'], inplace= True)

Второй вариант: подстрока «KF C*» всегда появляется в начале строки, тогда вы просто меняете весь столбец на «KF C*». Добавьте в конец своего кода

KFC.Description = 'KFC*'

Или даже удалите столбец, он не добавляет информации

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

Для этого вы можете использовать функцию map серии.

KFC['Description'] = KFC['Description'].map(lambda x: x.split('-', 1)[0].strip())

Эта функция должна разделиться на первый экземпляр - и занять первую часть, но честно говоря, если вы просто хотите установить его для этого конкретного случая c, вы можете просто установить текст как

KFC['Description'] = "KFC*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...