1). У меня есть следующий примерный набор данных:
>>> df
ID Region count
0 100 Asia 2
1 101 Europe 3
2 102 US 1
3 103 Africa 5
4 100 Russia 5
5 101 Australia 7
6 102 US 8
7 104 Asia 10
8 105 Europe 11
9 110 Africa 23
Я хотел сгруппировать наблюдения этого набора данных по ID области и суммировать подсчет для каждой группы. Поэтому я использовал что-то вроде этого:
>>> print(df.groupby(['ID','Region'],as_index=False).count.sum())
ID Region count
0 100 Asia 2
1 100 Russia 5
2 101 Australia 7
3 101 Europe 3
4 102 US 9
5 103 Africa 5
6 104 Asia 10
7 105 Europe 11
8 110 Africa 23
При использовании as_index = False я могу получить вывод "Sql-Like". Моя проблема в том, что я не могу переименовать счетчик совокупной переменной здесь. Так что в Sql, если захотите сделать выше, я бы сделал что-то вроде этого:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID,Region
order by ID, Region
Как мы видим, мне очень легко переименовать агрегированную переменную 'count' в Total_Numbers в SQL. Я хотел сделать то же самое в Pandas, но не смог найти такую опцию в функции groupby. Может ли кто-нибудь помочь?
2). Второй вопрос и больше наблюдений заключается в том, что можно напрямую использовать имена столбцов в Pandas функции dataframe без их включения внутри кавычек? Я понимаю, что имена переменных являются строковыми, поэтому должны быть внутри кавычек, но я вижу, использует ли внешняя функция dataframe, и в качестве атрибута мы не требуем, чтобы они были внутри кавычек. Подобно df.ID.sum() и т.д. Это только когда мы используем его в функции DataFrame, такой как df.sort() или df.groupby, мы должны использовать ее внутри кавычек. Это на самом деле немного боль, как в SQL или на SAS или на другом языке, мы просто используем имя переменной без их цитирования. Любое предложение по этому поводу?
Просьба предложить по двум вышеуказанным пунктам (первый главный, второй - мнение).
Спасибо