>  기사  >  백엔드 개발  >  다중 인덱스 팬더 데이터 프레임에서 외부 인덱스의 각 행의 합계를 계산합니다.

다중 인덱스 팬더 데이터 프레임에서 외부 인덱스의 각 행의 합계를 계산합니다.

WBOY
WBOY앞으로
2024-02-05 22:00:131104검색

计算多索引 pandas 数据帧外部索引每行的总和

질문 내용

데이터 프레임이 있습니다: selleritempriceshipping免费送货最低count availablecount required。我的目标是根据稍后计算的 total 找到 selleritem의 가장 저렴한 조합입니다(계산 코드는 아래에 표시됩니다). 샘플 데이터는 다음과 같습니다:

으아아아

그러나 seller都可以出售多个item。我想尽量减少支付的运费,所以我想通过 selleritems 分组在一起。因此,我根据我在另一个线程中看到的方式使用 .first() 방법 중 하나를 사용하면 각 열이 새로운 그룹화된 데이터 프레임에 유지되도록 그룹화할 수 있습니다.

으아아아

이번에는 합격하고 싶습니다seller计算total。所以我有以下代码,但它为每个 item 计算 total,而不是 seller,这意味着 shipping 根据每个组中的商品数量被多次添加,或者当 price x count 结束时不应用免费送货最低免运费.

으아아아

실제로는 계산이 필요한 것처럼 보이지만 total 时对每个 seller 求和 price x count 외부 인덱스의 각 행을 계산하는 방법을 모르기 때문에 본질적으로 동일한 문제입니다. 이를 위해 어떤 방법을 사용할 수 있나요?

또한, 제 하반기 목표를 어떻게 달성할 수 있을지 제안사항이 있으시면 언제든지 문의해 주세요. 필요한 모든 품목을 반품하고 싶습니다. 예를 들어 "프로젝트 1" 2개와 "프로젝트 2" 2개가 필요합니다. "판매자 1"에 "항목 1" 2개와 "항목 2" 1개가 있고 "판매자 2"에 "항목 1" 1개와 "항목 2" 1개가 있는 경우 "판매자 1" 항목을 모두 원합니다. 가장 저렴함), 그러나 "Seller2"에 대한 "Item1"은 1개뿐입니다. 이는 total 열의 계산에 영향을 미치는 것으로 보이지만 어떻게 구현해야 할지 모르겠습니다. total 列的计算,但我不确定如何实现它。


正确答案


我最终决定首先对 seller 进行分组,并对 price x count 进行求和以找到 subtotals,将其转换为数据帧,然后将 df1 与新的 subtotal 数据帧合并以创建 groupedphpcnend cphpcn 数据框。然后我使用 <code>np.where 建议创建了 totals 列(这比我的 for 循环优雅得多,并且可以轻松处理 nan 值)。最后按sellertotalitem

정답

🎜🎜드디어 판매자를 먼저 그룹화하고 가격 x 개수를 합하여 를 찾기로 결정했습니다. 소계를 데이터 프레임으로 변환한 다음 df1을 새로운 소계 데이터 프레임과 병합하여 groupedphpcnend cphpcn 데이터 프레임을 만듭니다. 그런 다음 <code>np.where 제안을 사용하여 totals 열을 만들었습니다(이것은 내 for 루프보다 훨씬 우아하고 nan 값을 쉽게 처리합니다). 마지막으로 판매자, 전체, 항목별로 그룹화하여 원하는 결과를 반환합니다. 최종 코드는 다음과 같습니다. 🎜 으아아아

위 내용은 다중 인덱스 팬더 데이터 프레임에서 외부 인덱스의 각 행의 합계를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제