1). Tôi có một tập dữ liệu mẫu sau:Đổi tên tên cột trong Pandas Chức năng nhóm
>>> 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
Tôi muốn nhóm các quan sát của tập dữ liệu này theo ID một vùng và tính tổng số cho mỗi nhóm. Vì vậy, tôi đã sử dụng một cái gì đó như thế này:
>>> 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
Khi sử dụng as_index = False Tôi có thể nhận được kết quả "Sql-Like". Vấn đề của tôi là tôi không thể đổi tên tổng số biến tổng hợp ở đây. Vì vậy, trong Sql nếu muốn làm điều trên, chúng tôi sẽ làm một cái gì đó như thế này:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID,Region
order by ID, Region
Như chúng ta thấy, nó rất dễ dàng cho tôi để đổi tên các tập hợp biến 'đếm' để Total_Numbers trong SQL. Tôi muốn làm điều tương tự trong Pandas nhưng không thể tìm thấy tùy chọn như vậy trong chức năng groupby. Ai đó có thể giúp?
2). Câu hỏi thứ hai và nhiều hơn nữa của một quan sát là có thể sử dụng trực tiếp các tên cột trong Pandas dataframe chức năng witout kèm theo chúng bên trong dấu ngoặc kép? Tôi hiểu rằng các tên biến là chuỗi, do đó, phải được bên trong dấu ngoặc kép, nhưng tôi thấy nếu sử dụng bên ngoài dataframe chức năng và như là một thuộc tính chúng tôi không yêu cầu họ được bên trong dấu ngoặc kép. Giống như df.ID.sum() vv. Chỉ khi chúng ta sử dụng nó trong một hàm DataFrame như df.sort() hoặc df.groupby, chúng ta phải sử dụng nó bên trong dấu ngoặc kép. Điều này thực sự là một chút đau như trong SQL hoặc trong SAS hoặc ngôn ngữ khác, chúng tôi chỉ đơn giản là sử dụng tên biến mà không trích dẫn chúng. Bất cứ đề nghị về điều này?
Vui lòng đề xuất trên hai điểm trên (1 điểm chính, thêm 2 ý kiến).
Cảm ơn
Thxs cho response.The đổi tên điều đã giúp, ngoại trừ việc tôi đoán trong cú pháp đầu tiên chúng ta cũng cần phải đề cập đến các cột = .. vì vậy, .rename (columns = {'count': 'Total_Numbers' }). Khác nó sẽ lấy nó cho chỉ mục và không thay đổi tên cột. Điều thứ hai hoạt động hoàn hảo, nhưng nếu một hoặc hai biến cần phải được đổi tên thì tôi đoán đầu tiên là thuận tiện hơn là đề cập đến tất cả các tên biến trong cú pháp thứ hai. Tôi đã hy vọng nếu có cái gì đó trong groupby nhưng có vẻ như không có. Ngoài ra tôi hiểu gấu trúc df là một bản chất dict.Was hy vọng cho một số tính linh hoạt trong Panda –
Baktaawar