簡體   English   中英

您如何根據 Python pandas 中的分組對數據框求和?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM