I've seen a number of questions online asking how to create new expense categories in GnuCash. The question itself demonstrates a fundamental misunderstanding of how basic bookkeeping works: an expense category is really nothing more (and nothing less!) than an account where cash values are allocated as spent. Think of a category as a bucket or container for certain types of expenditure: although the cash is gone, the category is a record of where it went.
Once you've understood this principle, creating your new category should be obvious: create a new account under the Expenses parent. Suppose that we want to create a new expense category called "Household" to differentiate non-perishable household items from perishable items (food!):
From the Accounts page, click on the Create as new account icon or (from the main menu), select Actions & New Account to summon the New Account dialog box.
Once the dialog appears, we can give it a name (in this case, Household) and a description. We also need to select Expense as the account type and Expenses as the parent type.
When you click OK your new account will be created and will appear in the account list under Expenses.
Now when you enter a transaction and click on the the transfer type, the new account will appear in the list as an option.
The good news is that this category will be reportable but just be cautious about adding too much granularity: you may end up not seeing the wood for the trees.
Sources & References: