Q1) groupby、SQL スタイルの集計を行い、出力列の名前を変更したい:
データセットの例:
>>> 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
ます。だから私はこのようなものを使用しました...Region
count
>>> 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 のような」出力を得ることができます。私の問題は、ここで集計変数の名前を変更count
できないことです。したがって、SQLで上記のことをしたい場合は、次のようにします。
select ID, Region, sum(count) as Total_Numbers
from df
group by ID, Region
order by ID, Region
ご覧のとおり、集計変数の名前を SQL で に変更するcount
のTotal_Numbers
は非常に簡単です。Pandas でも同じことをしたかったのですが、group-by 関数でそのようなオプションを見つけることができませんでした。誰か助けてくれませんか?
2番目の質問(より観察)は...
Q2) Pandas データフレーム関数で列名を引用符で囲まずに直接使用することは可能ですか?
変数名は文字列であるため、引用符で囲む必要があることは理解していますが、それらをデータフレーム関数の外で使用し、属性として引用符で囲む必要がないかどうかがわかります。df.ID.sum()
など。DataFrame関数で使用する場合、またはdf.sort()
引用df.groupby
符内で使用する必要がある場合のみです。SQL や SAS などの言語では、引用符を付けずに変数名を使用するだけなので、これは実際には少し面倒です。これに関する提案はありますか?
両方の質問に親切に回答してください (Q1 がメインで、Q2 が意見です)。