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
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
6df['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
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[]]
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
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
07. 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
18. 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
2Ngoà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ẻ !!