我想我在熊貓中以倒退的方式討論這一切。下面是一個例子數據框:Python 3 - 在字典和聚合中創建列表的組合
Group rstart rend qty
1 10000 11000 1000
1 10000 11000 8000
1 10000 11000 13000
1 10000 11000 1000
2 6000 8000 4000
2 6000 8000 9000
2 6000 8000 3000
最終我試圖確定在上述範圍之間的組內數量的數量或組合,把一個標誌一個新的列(如果可能的節省組合也在一個新的專欄中)。
以下是我迄今爲止所做的以及我遇到問題的方式 - 由於我是新手,因此嘗試了所有不同的方法。
import pandas as pd
import numpy as np
import itertools
df = pd.read_csv('test.csv')
d = df[['group','qty']]
s = d.groupby('group')['qty'].apply(list).to_dict()
comb = list(map(dict,itertools.combinations(s.items(),2)))
我試過的comb stmt和多種變化只是打印字典。把2換成兩個變體來測試它,但不工作 - 這將不得不根據列表中的值進行調整。
我引入了數據集,然後認爲最好創建一個包含每個分組和數量的列表的字典,以便在單獨的表中創建所有組合。一旦我獲得了每個值的組合和總和 - 鏈接回主數據框以與總數和標誌進行比較。
我遇到了創建與組和相關的數量的每個組合的問題和求和。如果存儲在所有字典的列表中,我可以執行它,但是我需要按組進行分組。例如,第1組應該有1000,8000和1000,13000,1000,1000和1000,8000,13000等等。組合的數量可能因組而異。
任何人都可以協助指導我在正確的方向嗎?也許我的想法是關於如何去做這件事。
謝謝
我不明白你的要求。例如,爲什麼1000-13000,1000的範圍是10000-11000? –
他們不是單獨看時 - 我試圖弄清楚該組中的數量或數量組合是否在該範圍內。在該組中,應該確定1000,8000和1000,因爲它們的總和在該範圍內。 – Court