Использование pandas для категорий текстовых данных в одном столбце и соответствующих категорий, указанных в следующем столбце

Моя электронная таблица Excel в настоящее время выглядит так после вставки нового столбца «Расходы» с помощью кода:

  1. импортировать панд как pd
  2. df = pd.read_csv(r"C:\Users\Mihir Patel\Project\Excel & CSV Stuff\June '20 CSVData.csv")
  3. df_Expense = df.insert(2, "Расход", "")
  4. df.to_excel(r"C:\Users\Mihir Patel\Project\Excel & CSV Stuff\June '20 CSVData.xlsx", index=None, header=True)

Так как столбец «Описание» содержит слово «ДРАКИ», я могу классифицировать эти расходы как «Личные», которые должны отображаться в столбце «Расходы» рядом с ним.

Точно так же следующий вниз содержит «Optus», относящийся к категории расходов, связанных с мобильным телефоном, поэтому слово «Телефон» должно появиться в столбце «Расходы».

Я пытался искать в Google и YouTube, но я просто не могу найти пример чего-то подобного.

Спасибо за вашу помощь.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете определить функцию, которая имеет все эти правила, и просто применить ее. Например

def rules(x):
    if "DRAKES" in x.description:
        return "Personal"
    if "OPUS" in x.description:
        return "Mobile"

df["Expense"] = df.apply(lambda x: rules(x), axis=1)
Ответ принят как подходящий

Я решил свою проблему, используя цикл while. Я пытался использовать метод в ответе на квест, но, скорее всего, я не использовал его должным образом и продолжал получать сообщение об ошибке. Поэтому я использовал цикл while для поиска в каждой отдельной ячейке в столбце «Описание» и классификации ее в той же строке в столбце «Расходы».

Мое решение с использованием цикла while:

import pandas as pd

df = pd.read_csv("C:\\Users\\Mihir Patel\\PycharmProjects\\pythonProject\\June '20 CSVData.csv")
df.insert(2, "Expenses", "")
description = "Description"
expense = "Expenses"
transfer = "Transfer"

i = -1 #Because I wanted python to start searching from index 0

while i < 296: #296 is the row where my data ends
    i = i + 1

    if "Drakes".upper() in df.loc[i, description]:
        df.loc[i, expense] = "Personal"

    if "Optus".upper() in df.loc[i, description]:
        df.loc[i, expense] = "Phone"

df.sort_values(by=["Expenses"], inplace=True)
df.to_excel("C:\\Users\\Mihir Patel\\PycharmProjects\\pythonProject\\June '20 CSVData.xlsx", index=False)

Другие вопросы по теме