Я пишу несколько функций для наборов данных, и мне интересно, есть ли способ написать эти функции, чтобы они работали с несколькими наборами данных, где столбцы могут иметь разные имена.
def calc(df):
a = df.groupby(['Region', 'Year'], as_index=False)["Sales"].sum()
print(a.to_string(index=False))
Эта функция работает без проблем, так как я указываю имена столбцов. Есть ли что-нибудь подобное:
def calc(df, x1, x2, x3):
a = df.groupby([x1, x2], as_index=False)[x3].sum()
print(a.to_string(index=False))
И выведите значения следующим образом:
if __name__ == "__main__":
report2(df, df['Region'], df['Year'], df["Sales"])
Когда я пытаюсь это сделать, я всегда получаю сообщение об ошибке:
Traceback (most recent call last):
File "sales_record.py", line 60, in <module>
calc(df, df['Region'], df['Year'], df["Sales"])
File "sales_record.py", line 54, in calc
answer = df.groupby([x1, x2], as_index=False)[x3].sum()
File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\base.py", line 265, in __getitem__
.format(missing=str(bad_keys)[1:-1]))
KeyError: 'Columns not found: 7200, 22500, 82500, 1800, 45000, 9000, 99000, 18000, 22000, 8400, 110000, 16500, 54000, 112500, 3000'
Любая помощь будет высоко ценится.