[英]How do you sum a dataframe based off a grouping in Python pandas?
我有一個 for 循環,目的是檢查大於零的值。
問題是,我只希望每次迭代都檢查一組 ID 的總和。
分組將匹配 ID 字符串的前 8 個字符。
我在循環之前進行了分組,但循環似乎仍然搜索整個 df 而不是每個組。
LeftGroup = newDF.groupby(‘ID_Left_8’)
for g in LeftGroup.groups:
if sum(newDF[‘Hours_Calc’] > 0):
print(g)
有沒有辦法將該總和過濾到每組最左邊的 8 個字符?
我期待 .groups 函數來完成這個,但它似乎仍然搜索每個 ID。
謝謝你。
def filter_and_sum(group):
return sum(group[group['Hours_Calc'] > 0]['Hours_Calc'])
LeftGroup = newDF.groupby('ID_Left_8')
results = LeftGroup.apply(filter_and_sum)
print(results)
這將計算每個組的Hours_Calc
列的總和,按條件Hours_Calc > 0
過濾。 結果系列將以最左邊的 8 個字符作為索引,並將 Hours_Calc 列的總和作為值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.