簡體   English   中英

將總計和計數行添加到數據框

[英]Add a Total and Count Row to a Dataframe

我有一個數據框如下:

dashboard = pd.DataFrame({
 'id':[1,2,3,4],
 'category': ['a', 'b', 'a', 'c'],
 'price': [123, 151, 21, 24],
 'description': ['IT related', 'IT related', 'Marketing','']
})

我需要添加一行以僅顯示某些類別的總和和計數,如下所示:

pd.DataFrame({
 'id': [3],
 'category': ['a&b'],
 'price': [295],
 'description': ['']
})

使用.agg的選項:

dashboard = pd.DataFrame({
    'id': [1, 2, 3, 4],
    'category': ['a', 'b', 'a', 'c'],
    'price': [123, 151, 21, 24],
    'description': ['IT related', 'IT related', 'Marketing', '']
})
a_b = dashboard[dashboard['category'].isin(['a','b'])].agg({'id':'count', 'price':sum})
df = pd.DataFrame({'a&b':a_b})

產量

       a&b
id       3
price  295

然后,您可以根據需要將.transpose()合並到現有數據框中,或者編譯匯總結果的單獨數據框,等等。

我會預先計算每個類別的所有總和,然后為每對貨幣總和加上類別名稱,然后追加新行。

嘗試這個:

import pandas as pd

dashboard = pd.DataFrame({
    'id': [1, 2, 3, 4],
    'category': ['a', 'b', 'a', 'c'],
    'price': [123, 151, 21, 24],
    'description': ['IT related', 'IT related', 'Marketing', '']
})

pairs = [('a', 'b')]

groups = dashboard.groupby("category")['price'].sum()

for c1, c2 in pairs:
    new_id = sum((dashboard['category'] == c1) | (dashboard['category'] == c2))
    name = '{}&{}'.format(c1, c2)
    price_sum = groups[c1] + groups[c2]
    dashboard = dashboard.append(pd.DataFrame({'id': [new_id], 'category': [name], 'price': [price_sum], 'description': ['']}))

print(dashboard)

嘗試這個:

在此處輸入圖片說明

dashboard = pd.DataFrame({
 'id':[1,2,3,4],
 'category': ['a', 'b', 'a', 'c'],
 'price': [123, 151, 21, 24],
 'description': ['IT related', 'IT related', 'Marketing','']
})

selection =['a','b']
selection_row = '&'.join(selection)
df2 = dashboard[dashboard['category'].isin(selection)].agg({'id' : ['count'], 'price' : ['sum']}).fillna(0).T
df2['summary'] = df2['count'].add(df2['sum'])

df2.loc['description'] =np.nan
df2.loc['category'] = selection_row

final_df = df2['summary']

final_df

id               3
price          295
description    NaN
category       a&b
Name: summary, dtype: object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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