Hướng dẫn python cumsum ignore nan - trăn bỏ qua nan

Tôi có một khung dữ liệu gấu trúc như dưới đây. Tôi muốn thực hiện tổng tích lũy trên cột 'new1' dựa trên mỗi đơn hàng. Mã dưới đây hoạt động một phần nhưng nó không bỏ qua ý nghĩa của NAN, tôi mong đợi giá trị của 'cumsum' là 8 cho hàng cuối cùng

import pandas as pd
import numpy as np
df = pd.DataFrame({'ORDER':["A", "A", "B", "B"], 'NEW1':[np.nan, 5, 8, np.nan]})
df['cumsum'] = df.groupby(['ORDER'])['NEW1'].cumsum()
df

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     NaN

Đầu ra mong đợi của tôi:

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0

hỏi ngày 23 tháng 7 năm 2020 lúc 20:41Jul 23, 2020 at 20:41

Hướng dẫn python cumsum ignore nan - trăn bỏ qua nan

1

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
4 trước
    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
5 và sử dụng
    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
6

df['cumsum']=df.fillna(0).groupby('ORDER')['NEW1'].transform('cumsum')



ORDER  NEW1  cumsum
0     A   NaN     0.0
1     A   5.0     5.0
2     B   8.0     8.0
3     B   NaN     8.0

Đã trả lời ngày 23 tháng 7 năm 2020 lúc 20:57Jul 23, 2020 at 20:57

Hướng dẫn python cumsum ignore nan - trăn bỏ qua nan

WWNDEWWNDEwwnde

23.7K5 Huy hiệu vàng13 Huy hiệu bạc28 Huy hiệu đồng5 gold badges13 silver badges28 bronze badges

1

Bạn có thể phải sử dụng áp dụng với Lambda:

df['cumsum'] = df.groupby(['ORDER'])['NEW1'].apply(lambda x: x.fillna(0).cumsum())

Hướng dẫn python cumsum ignore nan - trăn bỏ qua nan

WWNDE

23.7K5 Huy hiệu vàng13 Huy hiệu bạc28 Huy hiệu đồng5 gold badges13 silver badges28 bronze badges

Bạn có thể phải sử dụng áp dụng với Lambda:Jul 23, 2020 at 20:49

Hướng dẫn python cumsum ignore nan - trăn bỏ qua nan

WWNDEScott Boston

Đã trả lời ngày 23 tháng 7 năm 2020 lúc 20:4914 gold badges133 silver badges170 bronze badges

1

Scott Bostonscott Boston

df['cumsum'] = df.groupby('ORDER')['NEW1'].expanding().sum().reset_index(0, drop=True)

  ORDER  NEW1  cumsum
0     A   NaN     NaN
1     A   5.0     5.0
2     B   8.0     8.0
3     B   NaN     8.0

Huy hiệu vàng 139K14Jul 23, 2020 at 21:04

Hãy sử dụng

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
7
    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
8, sẽ đối xử với
    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
9 như bạn muốn:ALollz

Đã trả lời ngày 23 tháng 7 năm 2020 lúc 21:047 gold badges59 silver badges82 bronze badges

Hàm cumsum () Python NumPy được sử dụng để trả về tổng tích lũy của các phần tử mảng dọc theo trục đã cho. Nếu trục được cung cấp, nó sẽ trả về mảng có tổng tích lũy của các phần tử cùng với các trục được cung cấp. Trong bài viết này, tôi sẽ giải thích cú pháp và cách sử dụng numpy.cumsum() trả về tổng tích lũy của mảng đầu vào.numpy.cumsum() trả về tổng tích lũy của mảng đầu vào.

Nội dung chính ShowShow

  • 1. Ví dụ nhanh về hàm NumPy cumsum ()
  • 2. Cú pháp cumsum ()
  • 2.1 Các tham số của cumsum ()
  • 2.2 Giá trị hoàn trả của cumsum ()
  • 3. Cách sử dụng hàm NumPy cumsum ()
  • 4. Nhận Tổng tích lũy của Mảng 1-D NumPy
  • 5. Nhận Tổng tích lũy của Mảng 2-D NumPy
  • 6. Nhận tổng tích lũy trên các hàng của mảng 2-D
  • 7. Nhận tổng tích lũy qua các cột của mảng 2-D
  • 8. Nhận Tổng tích lũy của Mảng 2-D dọc theo Kiểu dữ liệu
  • 9. Kết luận
  • Bạn cũng có thể thích
  • Người giới thiệu

Hàm cumsum () Python NumPy được sử dụng để trả về tổng tích lũy của các phần tử mảng dọc theo trục đã cho. Nếu trục được cung cấp, nó sẽ trả về mảng có tổng tích lũy của các phần tử cùng với các trục được cung cấp. Trong bài viết này, tôi sẽ giải thích cú pháp và cách sử dụng numpy.cumsum() trả về tổng tích lũy của mảng đầu vào.

  • 1. Ví dụ nhanh về hàm NumPy cumsum ()
  • 2. Cú pháp cumsum ()
  • 2.1 Các tham số của cumsum ()
  • 2.2 Giá trị hoàn trả của cumsum ()
  • 3. Cách sử dụng hàm NumPy cumsum ()
  • 4. Nhận Tổng tích lũy của Mảng 1-D NumPy
  • 5. Nhận Tổng tích lũy của Mảng 2-D NumPy
  • 6. Nhận tổng tích lũy trên các hàng của mảng 2-D
  • 7. Nhận tổng tích lũy qua các cột của mảng 2-D
  • 8. Nhận Tổng tích lũy của Mảng 2-D dọc theo Kiểu dữ liệu
  • 9. Kết luận
  • Bạn cũng có thể thích
  • Người giới thiệu

Hàm cumsum () Python NumPy được sử dụng để trả về tổng tích lũy của các phần tử mảng dọc theo trục đã cho. Nếu trục được cung cấp, nó sẽ trả về mảng có tổng tích lũy của các phần tử cùng với các trục được cung cấp. Trong bài viết này, tôi sẽ giải thích cú pháp và cách sử dụng numpy.cumsum() trả về tổng tích lũy của mảng đầu vào.

  • 1. Ví dụ nhanh về hàm NumPy cumsum ()
  • 2. Cú pháp cumsum ()
  • 2.1 Các tham số của cumsum ()
  • 2.2 Giá trị hoàn trả của cumsum ()
  • 3. Cách sử dụng hàm NumPy cumsum ()
  • 4. Nhận Tổng tích lũy của Mảng 1-D NumPy
  • 5. Nhận Tổng tích lũy của Mảng 2-D NumPy
  • 6. Nhận tổng tích lũy trên các hàng của mảng 2-D
  • 7. Nhận tổng tích lũy qua các cột của mảng 2-D
  • 8. Nhận Tổng tích lũy của Mảng 2-D dọc theo Kiểu dữ liệu
  • 9. Kết luận
  • Bạn cũng có thể thích
  • Người giới thiệu
  • 1. Ví dụ nhanh về hàm NumPy cumsum ()
  • 2. Cú pháp cumsum ()
    • 2.1 Các tham số của cumsum ()
    • 2.2 Giá trị hoàn trả của cumsum ()
  • 3. Cách sử dụng hàm NumPy cumsum ()
  • 4. Nhận Tổng tích lũy của Mảng 1-D NumPy
  • 5. Nhận Tổng tích lũy của Mảng 2-D NumPy
  • 6. Nhận tổng tích lũy trên các hàng của mảng 2-D
  • 7. Nhận tổng tích lũy qua các cột của mảng 2-D
  • 8. Nhận Tổng tích lũy của Mảng 2-D dọc theo Kiểu dữ liệu
  • 9. Kết luận
    • Bạn cũng có thể thích
    • Người giới thiệu

1. Ví dụ nhanh về hàm NumPy cumsum ()

2. Cú pháp cumsum ()


# Below are the quick examples
import numpy as np

# Example 1: Get the cumsum of integer
arr = 12
arr1 = np.cumsum(arr)

# Example 2: Get the cumulative sum of 1-d array
arr = np.array([2, 7, 5, 8, 9,4])
arr1 = np.cumsum(arr)

# Example 3: Get the cumulative sum of numpy array
arr = np.array([[5, 8, 3, 7], [9, 4, 2, 6],[12, 8, 14, 11]])
arr1 = np.cumsum(arr)

# Example 4: Get cumulative sum over rows 
# for each of 4 columns
arr1 = np.cumsum(arr, axis = 0)

# Example 5: Get cumulative sum over columns 
# for each of 3 rows
arr1 = np.cumsum(arr, axis = 1)

# Example 6: Get the cumulative sum of an array
# along with specified datatype
arr1 = np.cumsum(arr, dtype = float)

# Example 7: Get cumulative sum over columns 
# for each of 3 rows along with datatype
arr1 = np.cumsum(arr, axis=1, dtype=float) 

2. Cú pháp cumsum ()

2.1 Các tham số của cumsum ()cumsum().


# Syntax of numpy.cumsum() 
numpy.cumsum(arr, axis=None, dtype=None, out=None)

2.1 Các tham số của cumsum ()

  • 2.2 Giá trị hoàn trả của cumsum () – Mảng đầu vào chứa các số có tổng tích lũy mong muốn. Nếu arr không phải là một mảng, một chuyển đổi sẽ được thực hiện.
  • Nội dung chính – Trục mà tổng tích lũy được tính theo đó. Mặc định là tính tổng của mảng phẳng.
  • Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách sử dụng hàm cumsum () trong NumPy. – Loại của mảng được trả về, cũng như của bộ tích lũy trong đó các phần tử được nhân lên. Nếu dtype không được chỉ định, nó sẽ mặc định là dtype của arr, trừ khi arr có một dtype số nguyên với độ chính xác nhỏ hơn giá trị của số nguyên nền tảng mặc định. Trong trường hợp đó, số nguyên nền tảng mặc định được sử dụng thay thế.
  • out – Nó là một ndarray và một tùy chọn. Vị trí lưu trữ kết quả. Nếu được cung cấp, nó phải có hình dạng mà các đầu vào phát tới. Nếu không được cung cấp hoặc Không có, một mảng mới được cấp phát sẽ được trả về. – Nó là một ndarray và một tùy chọn. Vị trí lưu trữ kết quả. Nếu được cung cấp, nó phải có hình dạng mà các đầu vào phát tới. Nếu không được cung cấp hoặc Không có, một mảng mới được cấp phát sẽ được trả về.

2.2 Giá trị hoàn trả của cumsum ()

Nó trả về một mảng mới chứa kết quả trừ khi kết quả được chỉ định.

3. Cách sử dụng hàm NumPy cumsum ()

Sử dụng numpy.cumsum() hàm để tính tổng tích lũy của các phần tử mảng trên một trục nhất định. Quá trình hình thành tổng tích lũy của một mảng là, nó giữ nguyên phần tử đầu tiên, phần tử thứ hai là tổng của phần tử đầu tiên và phần tử thứ hai, phần tử thứ ba là tổng của phần tử thứ nhất, thứ hai và phần tử thứ ba, v.v.numpy.cumsum() hàm để tính tổng tích lũy của các phần tử mảng trên một trục nhất định. Quá trình hình thành tổng tích lũy của một mảng là, nó giữ nguyên phần tử đầu tiên, phần tử thứ hai là tổng của phần tử đầu tiên và phần tử thứ hai, phần tử thứ ba là tổng của phần tử thứ nhất, thứ hai và phần tử thứ ba, v.v.

Khi bạn sử dụng một giá trị vô hướng duy nhất cho cumsum (), nó sẽ trả về cùng một giá trị. Ví dụ,


import numpy as np

# Get the cumsum of integer
arr = 12
arr1 = np.cumsum(arr)
print(arr1)

# Output
# [12]

4. Nhận Tổng tích lũy của Mảng 1-D NumPy

Hãy sử dụng mảng NumPy 1-D và tính tổng tích lũy, để làm như vậy trước tiên hãy tạo mảng NumPy bằng cách sử dụng numpy.array() và truyền mảng làm đối số cho hàm. Điều này trả về mảng có các giá trị tổng tích lũy.numpy.array() và truyền mảng làm đối số cho hàm. Điều này trả về mảng có các giá trị tổng tích lũy.


# creating an 1D input array
arr = np.array([2, 7, 5, 8, 9,4])
# Get the cumulative sum of 1-d array 
arr1 = np.cumsum(arr)
print(arr1)

# Output
# [ 2  9 14 22 31 35]

5. Nhận Tổng tích lũy của Mảng 2-D NumPy

Khi chúng tôi sử dụng cumsum() để tính tổng tích lũy của mảng NumPy 2-D, nó sẽ trả về tổng tích lũy của mảng phẳng. cumsum() để tính tổng tích lũy của mảng NumPy 2-D, nó sẽ trả về tổng tích lũy của mảng phẳng.


# Get the cumulative sum of numpy array
arr = np.array([[5, 8, 3, 7], [9, 4, 2, 6],[12, 8, 14, 11]])
arr1 = np.cumsum(arr)
print(arr1)

# Output
# [ 5 13 16 23 32 36 38 44 56 64 78 89]

6. Nhận tổng tích lũy trên các hàng của mảng 2-D

Hãy tính tổng tích lũy của một mảng cùng với axis=0 Điều này sẽ tính tổng tích lũy theo chiều dọc hoặc theo cột.axis=0 Điều này sẽ tính tổng tích lũy theo chiều dọc hoặc theo cột.

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
0

7. Nhận tổng tích lũy qua các cột của mảng 2-D

Bằng cách sử dụng axis =1nó tính tổng tích lũy theo chiều ngang hoặc theo hàng.axis =1nó tính tổng tích lũy theo chiều ngang hoặc theo hàng.

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
1

8. Nhận Tổng tích lũy của Mảng 2-D dọc theo Kiểu dữ liệu

Nếu bạn muốn một mảng đầu ra tổng tích lũy trong một kiểu dữ liệu cụ thể, hãy sử dụng đối số dtype. Ví dụ sau trả về mảng ở kiểu float.

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
2

Ngoài ra, mã trên có thể được tùy chỉnh đầu ra cùng với trục được chỉ định.

    ORDER   NEW1    cumsum
0   A       NaN     NaN
1   A       5.0     5.0
2   B       8.0     8.0
3   B       NaN     8.0
3

9. Kết luận

Trong bài viết này, tôi đã giải thích cách sử dụng NumPy.cumsum() và sử dụng cách này để tính tổng tích lũy của mảng NumPy cùng với trục được chỉ định và kiểu dữ liệu được chỉ định.NumPy.cumsum() và sử dụng cách này để tính tổng tích lũy của mảng NumPy cùng với trục được chỉ định và kiểu dữ liệu được chỉ định.

Học vui vẻ !!

Bạn cũng có thể thích

Người giới thiệu