1)。我有以下示例數據集:在Pandas Groupby函數中重命名列名稱
>>> 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 =假,我能得到一個「類似SQL的」輸出。我的問題是我無法在這裏重命名聚合變量計數。因此,在SQL中,如果想做的事情上面,我會做這樣的事情:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID,Region
order by ID, Region
正如我們看到的,它很容易讓我在SQL重命名集合變量「計數」來Total_Numbers。我想在熊貓中做同樣的事情,但無法在groupby函數中找到這樣的選項。有人可以幫忙嗎? 2)。第二個問題和更多的觀察是,是否可以直接使用Pandas dataframe函數中的列名稱,而不用引號將它們括起來?我知道變量名是字符串,所以必須在引號內,但我看到如果使用外部數據框函數,並且作爲一個屬性,我們不需要它們在引號內。就像df.ID.sum()等。只有當我們在DataFrame函數(如df.sort()或df.groupby)中使用它時,我們必須在引號內使用它。這在SQL或SAS或其他語言中實際上有點痛苦,我們只是簡單地使用變量名而不引用它們。對此有何建議?
請在上述兩點(第一個主要的,第二個更多的意見)建議。
感謝
Thxs爲響應。重命名的事情有所幫助,除了我想在第一個語法中我們還需要提及columns = ..所以,<您的DataFrame> .rename(columns = {'count':'Total_Numbers' })。否則它會將其作爲索引並且不會更改列名稱。第二件事完美地起作用,但是如果需要重新命名一個或兩個變量,那麼我想第一個更方便,而不是提到第二個語法中的所有變量名。 我希望如果groupby有東西,但看起來沒有。我也理解熊貓df是一個詞典內在。希望在熊貓中有一定的靈活性 – Baktaawar