如果我有一個資料框并且我想對列的值求和,我可以做類似的事情
import pandas as pd
studentdetails = {
"studentname":["Ram","Sam","Scott","Ann","John","Bobo"],
"mathantics" :[80,90,85,70,95,100],
"science" :[85,95,80,90,75,100],
"english" :[90,85,80,70,95,100]
}
index_labels=['r1','r2','r3','r4','r5','r6']
df = pd.DataFrame(studentdetails ,index=index_labels)
print(df)
df3 = df.sum()
print(df3)
col_list= ['studentname', 'mathantics', 'science']
print( df[col_list].sum())
我怎樣才能做類似的事情,而不是只得到總和,而是得到某些列的絕對值的總和(在這種特殊情況下是相同的)?我嘗試abs了幾種方法,但沒有奏效
編輯:
studentname mathantics science english
r1 Ram 80 85 90
r2 Sam 90 95 -85
r3 Scott -85 80 80
r4 Ann 70 90 70
r5 John 95 -75 95
r6 Bobo 100 100 100
預期產出
mathantics 520
science 525
english 520
Edit2:col_list不能包含字串值列
uj5u.com熱心網友回復:
您需要數字列作為絕對值:
col_list = df.columns.difference(['studentname'])
df[col_list].abs().sum()
df.set_index('studentname').abs().sum()
df.select_dtypes(np.number).abs().sum()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/519746.html
標籤:Python熊猫
