簡體   English   中英

熊貓數據框-將一列wrt與另一列中的值求和

[英]Pandas dataframe - Sum a column wrt to values in another column

我有一個看起來像這樣的數據:

data = {"doc1" : {'a': 2 , 'b': 1,'c':3}, "doc2" :  {'a': 1 , 'b': 1,'c':3}, "doc3" : {'a': 1 , 'b': 1,'c':3}}

我將其轉換為數據框:-

df = pd.DataFrame.from_dict(data,orient='index')

數據框看起來像這樣:-

acb doc1 2 3 1 doc2 1 3 1 doc3 1 3 1

現在,我想對b列中的所有值求和,其中a列的值為1。

所以我想要的值是2。

有沒有簡單的方法可以做到這一點,而不是遍歷這兩列? 我檢查了其他帖子,發現了這一點

這利用了.loc函數。 df.loc[df['a'] == 1, 'b'].sum()

但是由於某種原因,我似乎無法使其與我的數據框一起使用。

請告訴我。

謝謝。

你很親密 見下文。

>>> df[df['a'] == 1]['b'].sum()
2

而不是使用.loc ,請嘗試首先僅過濾數據幀( df[df['a'] == 1] ),然后選擇列'b' ,然后求和。

編輯:我將其留在此處以供將來參考,盡管根據您所使用的熊貓的版本,您的解決方案應該可以工作(謝謝@maxymoo)。 我正在運行0.18.1並且兩種方法都有效。

暫無
暫無

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

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