Моя электронная таблица Excel в настоящее время выглядит так после вставки нового столбца «Расходы» с помощью кода:
Так как столбец «Описание» содержит слово «ДРАКИ», я могу классифицировать эти расходы как «Личные», которые должны отображаться в столбце «Расходы» рядом с ним.
Точно так же следующий вниз содержит «Optus», относящийся к категории расходов, связанных с мобильным телефоном, поэтому слово «Телефон» должно появиться в столбце «Расходы».
Я пытался искать в Google и YouTube, но я просто не могу найти пример чего-то подобного.
Спасибо за вашу помощь.
Вы можете определить функцию, которая имеет все эти правила, и просто применить ее. Например
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)