Вы можете установить новый столбец с уникальным идентификатором, проиндексировав три списка и сгруппировав по ним:
df.loc[list_A, "class"] = "A"
df.loc[list_B, "class"] = "B"
df.loc[list_C, "class"] = "C"
df
# word1 word2 word3 class
# id
# 1 0.01 0.00 0.00 A
# 2 0.00 0.01 0.01 A
# 3 0.01 0.01 0.00 A
# 4 0.01 0.01 0.01 B
# 5 0.01 0.00 0.01 B
# 6 0.00 0.01 0.01 C
df.groupby("class").mean()
# word1 word2 word3
# class
# A 0.006667 0.006667 0.003333
# B 0.010000 0.005000 0.010000
# C 0.000000 0.010000 0.010000
Обратите внимание, что это предполагает, что id
является индексом вашего фрейма данных и чтосписки содержат значения из индекса (как в вашем примере).