sách gpt4 ăn đã đi

Triển khai hàm tính tổng cho dataframe trong python (triển khai hàm tính tổng cho dataframe trong PYTHON)

In lại Tác giả: trợ lý lỗi Thời gian cập nhật: 24-10-2023 17:54:57 28 4
mua khóa gpt4 giày nike



Chào buổi sáng.

Chúc một ngày tốt lành.


Tôi dự định triển khai hàm tổng được hiển thị trong hình bên dưới vào một khung dữ liệu trong Python:
nhập mô tả hình ảnh ở đây

Tôi dự định triển khai hàm tính tổng trong hình ảnh bên dưới dưới dạng khung dữ liệu trong Python:


Tôi đã thử đoạn mã dưới đây như một ví dụ đơn giản nhưng không nhận được kết quả như mong muốn:

Tôi đã thử mã bên dưới làm ví dụ hoạt động đơn giản nhưng tôi không nhận được kết quả như mong đợi:


D_data = [0,1, 0,22, 0,353, 4,25, 12,5];
trạng thái tối đa=5;
tổng_tử_số_1 = 0
tổng_tử_số_2 = 0
tổng_mẫu_số = 0
đối với i, hệ số trong enumerate(D_data):
đối với j trong phạm vi (1, trạng thái tối đa):
total_tử_số_2 += j * hệ số**2
total_numerator_1 += j * hệ số
tổng_mẫu số += I


in('lambda1:', tổng_tử_số_1 / tổng_mẫu_số)
in('lambda2:', tổng_tử_số_2 / tổng_tử_số_1)

Ví dụ, kết quả đầu ra dự kiến ​​cho lambda1 và lambda2 là:

Ví dụ: kết quả mong đợi của lambda1 và lambda2 là:


lambda1= ((0,1*1)+(0,22*2)+(0,353*3)+(4,25*4)+(12,5*5))/(0,1+0,22+0,353+4,25+12,5)= 4,655(Xấp xỉ)
lambda2= ((0,1^2 X 1)+(0,22^2 X 2)+(0,353^2 X 3)+(4,25^2 X 4)+(12,5^2 X 5))/(0,1+0,22+0,353+4,25+12,5)= 10,530(Xấp xỉ)

Bất kỳ đề xuất trợ giúp kịp thời nào cho giải pháp đều được đánh giá cao.

Bất kỳ đề xuất trợ giúp kịp thời nào về giải pháp sẽ được đánh giá cao.


Thêm câu trả lời

bạn sẽ nhận được kết quả tương tự, vì bạn đang chia l2.sum() với l1.sum()

Bạn sẽ nhận được kết quả tương tự vì bạn chia l2.sum() cho l1.sum()

Là gì d_result['D']?

D_RESULT['D'] là gì?

Ý tưởng là giả sử d_result['D']=[1,2,3,4,5] thì: l1=(1×1)+(2×2)+(3×3)+... và l2= (1×1^2)+(2×2^2)+(3×3^2)+... Từ ví dụ làm việc đơn giản này, lambda1 và lamba 2 phải khác nhau.

Ý tưởng là: Giả sử d_Result['D']=[1, 2, 3, 4, 5], thì: L1=(1×1)+(2×2)+(3×3)+…và L2= (1×1^2)+(2×2^2)+(3×3^2)+… Trong ví dụ hoạt động đơn giản này, lambda1 và lamba 2 phải khác nhau.

Bạn có muốn thực hiện những điều này trong một khung dữ liệu pandas không? D_dữ liệu dữ liệu trong khung dữ liệu của bạn?

Bạn đang muốn triển khai các chức năng này trong khung dữ liệu gấu trúc? Dữ liệu có nằm trong khung dữ liệu D_DATA không?

Cũng như của bạn lambda2 phép tính sai, phải là 49.014557022326805

Ngoài ra, phép tính lambda2 của bạn sai, nó phải là 49.014557022326805

Khuyến nghị câu trả lời tuyệt vời

Cho một danh sách D, có vẻ như bạn muốn tính toán l1 = (D[0] * 1 + D[1] * 2 + D[2] * 3 + …) / (D[0] + D[1] + D[2] + …), Và l2 = (D[0]**2 * 1 + D[1]**2 * 2 + D[2]**2 * 3 + ...) / (D[0] + D[1] + D[2] + ...)

Cho một danh sách D, có vẻ như bạn cần tính L1=(D[0]*1+D[1]*2+D[2]*3+...)/(D[0]+D[1 ] +D[2]+...) và L2=(D[0]**2*1+D[1]**2*2+D[2]**2*3+...)/ ( D[0]+D[1]+D[2]+...)


Trong Python thuần túy, bạn có thể viết các phép toán này như sau:

Trong Python thuần túy, bạn có thể viết các thao tác này dưới dạng:


tổng = tổng(D)
l1 = tổng(d * i cho i, d trong enumerate(D, 1)) / tổng số # 4.654709292314756
l2 = tổng(d**2 * i cho i, d trong enumerate(D, 1)) / tổng số # 49.014557022326805

Nếu bạn đang sử dụng pandas cho khung dữ liệu của mình, bạn có thể sử dụng pandas tổng hợp để thuê ngoài việc tính toán cho bộ phận phụ trợ:

Nếu khung dữ liệu của bạn sử dụng gấu trúc, bạn có thể sử dụng tổng của gấu trúc để thuê ngoài tính toán cho phần phụ trợ:


nhập numpy dưới dạng np
nhập pandas dưới dạng pd

D_df = pd.DataFrame(D, cột=["dữ liệu"])

hệ số nhân = (np.arange(len(D_df)) + 1).reshape((-1, 1))

tổng = D_df.sum(trục=0)
lambda1 = (D_df * số nhân). tổng (trục = 0) / tổng số
lambda2 = (D_df**2 * số nhân).sum(trục=0) / tổng số

hệ số nhân chỉ đơn giản là một vector cột (mảng hình dạng (*, 1)) chứa các số [1, 2, 3, ..., len(D_df)]

Số nhân chỉ là một vectơ cột (mảng hình (*, 1)) chứa các số [1, 2, 3, ..., len(D_Df)]



Bạn đang cố gắng in lambda1 thay vì lambda2

Bạn đang cố in lambda1 thay vì lambda2


Thêm câu trả lời

Cảm ơn @Abinash đã phản hồi nhanh chóng. Kết quả thu được cho lambda1 và lambda2 có giá trị bằng nhau một cách bất ngờ. Đó là thách thức của tôi.

Cảm ơn bạn đã trả lời nhanh @Abinash. Kết quả thu được cho lambda1 và lambda2 có giá trị ngang nhau một cách đáng ngạc nhiên. Đó là thử thách của tôi.

28 4 0
trợ lý lỗi
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress