У меня возникли проблемы при попытке изменить несколько значений диапазона строк для вновь созданного столбца в кадре данных, и я надеялся получить некоторую помощь. Я прошу прощения, если этот вопрос был задан ранее, и был бы очень признателен, если бы вы могли указать мне правильное направление. Я новичок ie в python кодирование
Так что я импортирую кучу данных из электронная таблица прибылей и убытков для нескольких компаний, которые объединяются в общую сумму и очищаются перед внесением указанных изменений для дальнейшего анализа:
import pandas as pd
from tabulate import tabulate
dftabulate = lambda df:tabulate(df,headers='keys',tablefmt='psql')
CleanCols = [5,7,8,9,10,11,12,13,14,15,17]
SummaryRows = [0,39,44,58,62,79,87]
VA = pd.read_excel('Columnar BU P&L.xlsx', sheet_name = 'Variance by Co')
VA = VA[98:197]
VA = VA.iloc[:,CleanCols]
VA.columns = ['Expense','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'All Companies']
VA = VA.dropna(axis = 0, how = 'any')
VA = VA.reset_index(drop = True)
VAtcols = VA.columns.drop('Expense')
VA[VAtcols] = VA[VAtcols].astype(int)
VM = VA.iloc[SummaryRows]
VA['Exp Category'] = 'NA'
print(dftabulate(VA.head()))
Вывод выглядит следующим образом:
Expense A ... All Companies Exp Category
0 General and Administrative Expenses (G&A) -4550 ... 133886 NA
1 Communications -17 ... -4793 NA
2 Fuel - Travel 0 ... -1274 NA
3 Mileage & Auto 449 ... -251 NA
4 Travel 0 ... 1187 NA
Кто я Попытка добиться состоит в том, чтобы изменить только что созданный столбец Exp Category на несколько значений в зависимости от индексов строк. например, я хотел бы изменить строки 1:12 на «Путешествия и развлечения» и так далее. Когда я использую приведенный ниже код для создания этой категоризации, она не выдает ошибку, но не изменяет присвоенные значения NA для этого столбца, и я не могу понять, что я делаю здесь неправильно.
VA[1:12]['Exp Category'] = 'Travel & Entertainment'
VA[13:18]['Exp Category'] = 'Office Supplies & Expenses'
VA[19:24]['Exp Category'] = 'Professional Fees'
VA[25:28]['Exp Category'] = 'Fees & Assessments'
VA[29:30]['Exp Category'] = 'IT Expense'
VA[31:32]['Exp Category'] = 'Bad Debt Expense'
VA[33:38]['Exp Category'] = 'Misc Expense'
VA[40:43]['Exp Category'] = 'Marketing Expenses'
VA[45:57]['Exp Category'] = 'Payroll & Related Expenses'
VA[59:61]['Exp Category'] = 'Utilities Expenses'
VA[63:69]['Exp Category'] = 'Equip Maint & Rental Expenses'
VA[70:78]['Exp Category'] = 'Mill Expenses'
VA[80:82]['Exp Category'] = 'Taxes'
VA[83:86]['Exp Category'] = 'Insurance'
VA[88:89]['Exp Category'] = 'Incentive Compensation'
VA[89:90]['Exp Category'] = 'Strategic Initiative'
Вывод все еще выглядит так с предупреждением о возврате a-view-verus-a-copy:
Expense A ... All Companies Exp Category
0 General and Administrative Expenses (G&A) -4550 ... 133886 NA
1 Communications -17 ... -4793 NA
2 Fuel - Travel 0 ... -1274 NA
3 Mileage & Auto 449 ... -251 NA
4 Travel 0 ... 1187 NA
Я пытался заглянуть в сообщение «SettingWithCopyWarning», но, несмотря на чтение этого материала, я не могу понимаю, как это исправить и был бы очень признателен за любые отзывы!
Заранее спасибо!