Hướng dẫn how to group by year in python - cách nhóm theo năm trong python

Điều này có thể dễ dàng hơn để giải thích với một bộ dữ liệu mẫu.

Tạo dữ liệu mẫu

Giả sử chúng ta có một cột thời gian duy nhất,

df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
1 và một cột khác mà chúng ta muốn thực hiện một tập hợp trên,
df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
2.

df = pd.DataFrame({'date':pd.DatetimeIndex(['2012-1-1', '2012-6-1', '2015-1-1', '2015-2-1', '2015-3-1']),
                   'a':[9,5,1,2,3]}, columns=['date', 'a'])

df

        date  a
0 2012-01-01  9
1 2012-06-01  5
2 2015-01-01  1
3 2015-02-01  2
4 2015-03-01  3

Có một số cách để nhóm theo năm

  • Sử dụng Trình truy cập DT với thuộc tính
    df['date'].dt.year
    
    0    2012
    1    2012
    2    2015
    3    2015
    4    2015
    Name: date, dtype: int64
    
    3
  • Đặt
    df['date'].dt.year
    
    0    2012
    1    2012
    2    2015
    3    2015
    4    2015
    Name: date, dtype: int64
    
    1 vào chỉ mục và sử dụng chức năng ẩn danh để truy cập năm
  • Sử dụng phương pháp
    df['date'].dt.year
    
    0    2012
    1    2012
    2    2015
    3    2015
    4    2015
    Name: date, dtype: int64
    
    5
  • Chuyển đổi sang thời kỳ Pandas

df['date'].dt.year 0 2012 1 2012 2 2015 3 2015 4 2015 Name: date, dtype: int64 6 Người truy cập có thuộc tính df['date'].dt.year 0 2012 1 2012 2 2015 3 2015 4 2015 Name: date, dtype: int64 3

Khi bạn có một cột (và không phải là một chỉ mục) của dấu thời gian Pandas, bạn có thể truy cập nhiều thuộc tính và phương thức bổ sung hơn với người truy cập

df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
8. Ví dụ:

df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64

Chúng tôi có thể sử dụng điều này để hình thành các nhóm của mình và tính toán một số tập hợp trên một cột cụ thể:

df.groupby(df['date'].dt.year)['a'].agg(['sum', 'mean', 'max'])

      sum  mean  max
date                
2012   14     7    9
2015    6     2    3

Đặt ngày trong chỉ mục và sử dụng chức năng ẩn danh để truy cập năm

Nếu bạn đặt cột ngày làm chỉ mục, nó sẽ trở thành một datetimeindex với cùng các thuộc tính và phương thức như

df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
8 accessor cung cấp các cột bình thường

df1 = df.set_index('date')
df1.index.year

Int64Index([2012, 2012, 2015, 2015, 2015], dtype='int64', name='date')

Thật thú vị, khi sử dụng phương thức Groupby, bạn có thể chuyển nó một hàm. Hàm này sẽ được thông qua chỉ mục của DataFrame. Vì vậy, chúng ta có thể nhận được kết quả tương tự từ phía trên với những điều sau đây:

df1.groupby(lambda x: x.year)['a'].agg(['sum', 'mean', 'max'])

      sum  mean  max
2012   14     7    9
2015    6     2    3

Sử dụng phương pháp df['date'].dt.year 0 2012 1 2012 2 2015 3 2015 4 2015 Name: date, dtype: int64 5

Nếu cột ngày của bạn không nằm trong chỉ mục, bạn phải chỉ định cột với tham số

df.groupby(df['date'].dt.year)['a'].agg(['sum', 'mean', 'max'])

      sum  mean  max
date                
2012   14     7    9
2015    6     2    3
1. Bạn cũng cần chỉ định bí danh bù là một chuỗi.

df.resample('AS', on='date')['a'].agg(['sum', 'mean', 'max'])

             sum  mean  max
date                       
2012-01-01  14.0   7.0  9.0
2013-01-01   NaN   NaN  NaN
2014-01-01   NaN   NaN  NaN
2015-01-01   6.0   2.0  3.0

Chuyển đổi sang thời kỳ Pandas

df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
6 Người truy cập có thuộc tính
df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
3

df['date'].dt.to_period('A')

0   2012
1   2012
2   2015
3   2015
4   2015
Name: date, dtype: object

Khi bạn có một cột (và không phải là một chỉ mục) của dấu thời gian Pandas, bạn có thể truy cập nhiều thuộc tính và phương thức bổ sung hơn với người truy cập

df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
8. Ví dụ:

df.groupby(df['date'].dt.to_period('Y'))['a'].agg(['sum', 'mean', 'max'])


      sum  mean  max
2012   14     7    9
2015    6     2    3


Chúng tôi sẽ nhóm gấu trúc DataFrame bằng Groupby (). Chọn cột được sử dụng bằng hàm Grouper. Chúng tôi sẽ nhóm một năm và tính tổng giá đăng ký với khoảng thời gian năm cho ví dụ của chúng tôi được hiển thị dưới đây cho hồ sơ bán xe.

Lúc đầu, hãy để nói rằng sau đây là DataFrame của chúng tôi với ba cột -

# dataframe with one of the columns as Date_of_Purchase
dataFrame = pd.DataFrame(
   {
      "Car": ["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota", "Nissan", "Bentley", "Mustang"],

      "Date_of_Purchase": [pd.Timestamp("2021-06-10"),
         pd.Timestamp("2019-07-11"),
         pd.Timestamp("2016-06-25"),
         pd.Timestamp("2021-06-29"),
         pd.Timestamp("2020-03-20"),
         pd.Timestamp("2019-01-22"),
         pd.Timestamp("2011-01-06"),
         pd.Timestamp("2013-01-04"),
         pd.Timestamp("2014-05-09")
      ],
      "Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
   }
)

Tiếp theo, sử dụng cột grouper để chọn cột DATE_OF_PURCHASE trong hàm Groupby. Tần số được đặt là 3y, tức là khoảng 3 năm được nhóm lại.

Thí dụ

Sau đây là mã -

import pandas as pd

# dataframe with one of the columns as Date_of_Purchase
dataFrame = pd.DataFrame(
   {
      "Car": ["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota", "Nissan", "Bentley", "Mustang"],

      "Date_of_Purchase": [pd.Timestamp("2021-06-10"),
         pd.Timestamp("2019-07-11"),
         pd.Timestamp("2016-06-25"),
         pd.Timestamp("2021-06-29"),
         pd.Timestamp("2020-03-20"),
         pd.Timestamp("2019-01-22"),
         pd.Timestamp("2011-01-06"),
         pd.Timestamp("2013-01-04"),
         pd.Timestamp("2014-05-09")
      ],

      "Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
   }
)

print("DataFrame...
",dataFrame) # Grouper to select Date_of_Purchase column within groupby function print("
Group Dataframe by 3 years...
",dataFrame.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='3Y')).sum())

Đầu ra

Điều này sẽ tạo ra đầu ra sau -

df['date'].dt.year

0    2012
1    2012
2    2015
3    2015
4    2015
Name: date, dtype: int64
0

Hướng dẫn how to group by year in python - cách nhóm theo năm trong python

Cập nhật vào ngày 30 tháng 9 năm 2021 12:58:20

  • Câu hỏi và câu trả lời liên quan
  • Python - Làm thế nào để nhóm gấu trúc DataFrame theo tháng?
  • Python - Làm thế nào để nhóm gấu trúc dữ liệu theo ngày?
  • Python - Làm thế nào để nhóm gấu trúc DataFrame theo vài phút?
  • Python - Sắp xếp các gấu trúc được nhóm dữ liệu theo kích thước nhóm?
  • Python - Lệnh giảm dần sắp xếp nhóm gấu trúc được nhóm theo kích thước nhóm?
  • Python - Lệnh tăng dần sắp xếp gấu trúc được nhóm dữ liệu theo kích thước nhóm?
  • Python - Làm thế nào để nhóm các hàng dữ liệu vào danh sách trong gấu trúc?
  • Python - Bộ lọc dữ liệu Pandas theo thời gian
  • Làm thế nào để chọn nhóm lớn nhất trong mỗi nhóm trong Python Pandas DataFrame?
  • Python Pandas - SUBSET DATAFRAME theo tên cột
  • Nhóm-BY và SUM trong Python Pandas
  • Python - Tính toán các giá trị nhóm cuối cùng trong khung dữ liệu gấu trúc
  • Python - Tính toán giá trị nhóm đầu tiên trong một khung dữ liệu gấu trúc
  • Làm thế nào để vẽ âm mưu được tổng hợp theo ngày dữ liệu gấu trúc?
  • Làm thế nào để truy cập vào một nhóm các hàng trong một khung dữ liệu gấu trúc?

Làm thế nào tôi có thể nhóm theo tháng từ một trường ngày sử dụng python pandas?

Làm thế nào tôi có thể nhóm theo tháng từ một trường ngày sử dụng Python Pandas ?..
Thay đổi cột ngày thành định dạng DateTime. ---> df ['ngày'] = pd. ....
Chèn một hàng mới trong khung dữ liệu có tháng như [tháng 5, 'tháng 6'] ---> df ['tháng'] = df ['date']. ....
Bây giờ tổng hợp dữ liệu tổng hợp trong cột tháng và tổng doanh thu ..

Chúng ta có thể sử dụng nhóm trong Python không?

Một nhóm trong Python và SQL được sử dụng để tách dữ liệu giống hệt nhau thành các nhóm để cho phép tổng hợp và phân tích thêm. Một nhóm trong Python được thực hiện bằng thư viện Pandas. Chức năng Groupby () và một nhóm trong SQL được thực hiện bằng cách sử dụng nhóm SQL theo câu lệnh.. A GroupBy in Python is performed using the pandas library . groupby() function and a GroupBy in SQL is performed using an SQL GROUP BY statement.

Làm thế nào để Python chia tuổi thành các nhóm?

Làm thế nào tôi có thể nhóm theo tháng từ một trường ngày sử dụng python pandas? and so on .....

Bạn có thể nhóm theo chỉ mục gấu trúc không?

Làm thế nào để thực hiện chỉ mục nhóm trong gấu trúc?Truyền tên chỉ mục của dataFrame dưới dạng tham số cho chức năng GroupBy () cho các hàng nhóm trên một chỉ mục.Khung dữ liệu.Hàm groupby () lấy chuỗi hoặc danh sách làm tham số để chỉ định các cột hoặc chỉ mục nhóm.Pass index name of the DataFrame as a parameter to groupby() function to group rows on an index. DataFrame. groupby() function takes string or list as a param to specify the group columns or index.