Pandas tạo cột mới dựa trên điều kiện của các cột khác

[Nếu chúng ta giả sử nhiệt độ là 25 độ C và áp suất là 1013 hPa thì hệ số chuyển đổi là 1. 882]

In [4]: air_quality["london_mg_per_cubic"] = air_quality["station_london"] * 1.882

In [5]: air_quality.head[]
Out[5]: 
                     station_antwerp  ..  london_mg_per_cubic
datetime                              ..                     
2019-05-07 02:00:00              NaN  ..               43.286
2019-05-07 03:00:00             50.5  ..               35.758
2019-05-07 04:00:00             45.0  ..               35.758
2019-05-07 05:00:00              NaN  ..               30.112
2019-05-07 06:00:00              NaN  ..                  NaN

[5 rows x 4 columns]

Để tạo một cột mới, hãy sử dụng dấu ngoặc _______11_______ với tên cột mới ở bên trái của bài tập

Ghi chú

Việc tính toán các giá trị được thực hiện theo từng phần tử. Điều này có nghĩa là tất cả các giá trị trong cột đã cho được nhân với giá trị 1. 882 cùng một lúc. Bạn không cần sử dụng vòng lặp để lặp lại từng hàng

  • Tôi muốn kiểm tra tỷ lệ của các giá trị ở Paris so với Antwerp và lưu kết quả vào một cột mới

    In [6]: air_quality["ratio_paris_antwerp"] = [
       ...:     air_quality["station_paris"] / air_quality["station_antwerp"]
       ...: ]
       ...: 
    
    In [7]: air_quality.head[]
    Out[7]: 
                         station_antwerp  ..  ratio_paris_antwerp
    datetime                              ..                     
    2019-05-07 02:00:00              NaN  ..                  NaN
    2019-05-07 03:00:00             50.5  ..             0.495050
    2019-05-07 04:00:00             45.0  ..             0.615556
    2019-05-07 05:00:00              NaN  ..                  NaN
    2019-05-07 06:00:00              NaN  ..                  NaN
    
    [5 rows x 5 columns]
    

    Việc tính toán lại là một phần tử khôn ngoan, do đó, / được áp dụng cho các giá trị trong mỗi hàng

Ngoài ra, các toán tử toán học khác [

In [2]: air_quality = pd.read_csv["data/air_quality_no2.csv", index_col=0, parse_dates=True]

In [3]: air_quality.head[]
Out[3]: 
                     station_antwerp  station_paris  station_london
datetime                                                           
2019-05-07 02:00:00              NaN            NaN            23.0
2019-05-07 03:00:00             50.5           25.0            19.0
2019-05-07 04:00:00             45.0           27.7            19.0
2019-05-07 05:00:00              NaN           50.4            16.0
2019-05-07 06:00:00              NaN           61.9             NaN
0,
In [2]: air_quality = pd.read_csv["data/air_quality_no2.csv", index_col=0, parse_dates=True]

In [3]: air_quality.head[]
Out[3]: 
                     station_antwerp  station_paris  station_london
datetime                                                           
2019-05-07 02:00:00              NaN            NaN            23.0
2019-05-07 03:00:00             50.5           25.0            19.0
2019-05-07 04:00:00             45.0           27.7            19.0
2019-05-07 05:00:00              NaN           50.4            16.0
2019-05-07 06:00:00              NaN           61.9             NaN
1,
In [2]: air_quality = pd.read_csv["data/air_quality_no2.csv", index_col=0, parse_dates=True]

In [3]: air_quality.head[]
Out[3]: 
                     station_antwerp  station_paris  station_london
datetime                                                           
2019-05-07 02:00:00              NaN            NaN            23.0
2019-05-07 03:00:00             50.5           25.0            19.0
2019-05-07 04:00:00             45.0           27.7            19.0
2019-05-07 05:00:00              NaN           50.4            16.0
2019-05-07 06:00:00              NaN           61.9             NaN
2, /,…] hoặc toán tử logic [
In [2]: air_quality = pd.read_csv["data/air_quality_no2.csv", index_col=0, parse_dates=True]

In [3]: air_quality.head[]
Out[3]: 
                     station_antwerp  station_paris  station_london
datetime                                                           
2019-05-07 02:00:00              NaN            NaN            23.0
2019-05-07 03:00:00             50.5           25.0            19.0
2019-05-07 04:00:00             45.0           27.7            19.0
2019-05-07 05:00:00              NaN           50.4            16.0
2019-05-07 06:00:00              NaN           61.9             NaN
4,
In [2]: air_quality = pd.read_csv["data/air_quality_no2.csv", index_col=0, parse_dates=True]

In [3]: air_quality.head[]
Out[3]: 
                     station_antwerp  station_paris  station_london
datetime                                                           
2019-05-07 02:00:00              NaN            NaN            23.0
2019-05-07 03:00:00             50.5           25.0            19.0
2019-05-07 04:00:00             45.0           27.7            19.0
2019-05-07 05:00:00              NaN           50.4            16.0
2019-05-07 06:00:00              NaN           61.9             NaN
5,
In [2]: air_quality = pd.read_csv["data/air_quality_no2.csv", index_col=0, parse_dates=True]

In [3]: air_quality.head[]
Out[3]: 
                     station_antwerp  station_paris  station_london
datetime                                                           
2019-05-07 02:00:00              NaN            NaN            23.0
2019-05-07 03:00:00             50.5           25.0            19.0
2019-05-07 04:00:00             45.0           27.7            19.0
2019-05-07 05:00:00              NaN           50.4            16.0
2019-05-07 06:00:00              NaN           61.9             NaN
6,…] hoạt động theo nguyên tố. Cái sau đã được sử dụng để lọc các hàng của bảng bằng biểu thức điều kiện

Nếu bạn cần logic nâng cao hơn, bạn có thể sử dụng mã Python tùy ý thông qua

  • Tôi muốn đổi tên các cột dữ liệu thành mã định danh trạm tương ứng được sử dụng bởi OpenAQ

    ________số 8_______

    In [9]: air_quality_renamed.head[]
    Out[9]: 
                         BETR801  FR04014  ..  london_mg_per_cubic  ratio_paris_antwerp
    datetime                               ..                                          
    2019-05-07 02:00:00      NaN      NaN  ..               43.286                  NaN
    2019-05-07 03:00:00     50.5     25.0  ..               35.758             0.495050
    2019-05-07 04:00:00     45.0     27.7  ..               35.758             0.615556
    2019-05-07 05:00:00      NaN     50.4  ..               30.112                  NaN
    2019-05-07 06:00:00      NaN     61.9  ..                  NaN                  NaN
    
    [5 rows x 5 columns]
    

    Hàm này có thể được sử dụng cho cả nhãn hàng và nhãn cột. Cung cấp từ điển với các khóa tên hiện tại và giá trị tên mới để cập nhật tên tương ứng

Ánh xạ không nên chỉ giới hạn ở các tên cố định mà còn có thể là một chức năng ánh xạ. Ví dụ: chuyển đổi tên cột thành chữ thường cũng có thể được thực hiện bằng hàm

In [10]: air_quality_renamed = air_quality_renamed.rename[columns=str.lower]

In [11]: air_quality_renamed.head[]
Out[11]: 
                     betr801  fr04014  ..  london_mg_per_cubic  ratio_paris_antwerp
datetime                               ..                                          
2019-05-07 02:00:00      NaN      NaN  ..               43.286                  NaN
2019-05-07 03:00:00     50.5     25.0  ..               35.758             0.495050
2019-05-07 04:00:00     45.0     27.7  ..               35.758             0.615556
2019-05-07 05:00:00      NaN     50.4  ..               30.112                  NaN
2019-05-07 06:00:00      NaN     61.9  ..                  NaN                  NaN

[5 rows x 5 columns]

Để hướng dẫn sử dụng

Chi tiết về đổi tên cột hoặc nhãn hàng được cung cấp trong phần hướng dẫn sử dụng trên

NHỚ

  • Tạo một cột mới bằng cách chỉ định đầu ra cho DataFrame với một tên cột mới ở giữa []

    Làm cách nào để tạo một cột mới dựa trên các giá trị từ các cột khác trong gấu trúc?

    Bạn có thể thêm/nối một cột mới vào DataFrame dựa trên các giá trị của một cột khác bằng cách sử dụng df. gán[] , df. apply[] và, np. các hàm where[] và trả về một Khung dữ liệu mới sau khi thêm một cột mới.

    Làm cách nào để tạo một cột mới trong gấu trúc dựa trên nhiều điều kiện?

    Kết luận. .
    Tạo cột mới bằng hàm tùy chỉnh có điều kiện và giá trị trả về để áp dụng trên tất cả các hàng của khung dữ liệu
    Sử dụng lựa chọn gọn gàng với danh sách các điều kiện và các lựa chọn tương ứng của chúng làm tham số để tạo một cột mới
    Tạo điều kiện dưới dạng mặt nạ boolean để chuyển vào. loc để cập nhật giá trị cột mới

Chủ Đề