Pandas 对列和行求和

Pandas 对列和行求和,pandas,Pandas,如何将行和列相加。 最后一列Sum需要是行R0+R1+R2的总和。 最后一行必须是这些列的总和 import pandas as pd # initialize list of lists data = [['AP',16,20,78], ['AP+', 10,14,55], ['SP',32,26,90],['Total',0, 0, 0]] # Create the pandas DataFrame df = pd.DataFrame(data, columns = ['Type',

如何将行和列相加。 最后一列
Sum
需要是行
R0+R1+R2
的总和。 最后一行必须是这些列的总和

import pandas as pd
# initialize list of lists 
data = [['AP',16,20,78], ['AP+', 10,14,55], ['SP',32,26,90],['Total',0, 0, 0]] 
# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Type', 'R0', 'R1', 'R2']) 
结果是:

    Type  R0  R1  R2  Sum
0     AP  16  20  78  NaN
1    AP+  10  14  55  NaN
2     SP  32  26  90  NaN
3  Total   0   0   0  NaN

让我们试试
.iloc
位置选择

df.iloc[-1,1:]=df.iloc[:-1,1:].sum()
df['Sum']=df.iloc[:,1:].sum(axis=1)
df
    Type  R0  R1   R2  Sum
0     AP  16  20   78  114
1    AP+  10  14   55   79
2     SP  32  26   90  148
3  Total  58  60  223  341

让我们试试
.iloc
位置选择

df.iloc[-1,1:]=df.iloc[:-1,1:].sum()
df['Sum']=df.iloc[:,1:].sum(axis=1)
df
    Type  R0  R1   R2  Sum
0     AP  16  20   78  114
1    AP+  10  14   55   79
2     SP  32  26   90  148
3  Total  58  60  223  341

通常,最好指定列名:

import pandas as pd
# initialize list of lists 
data = [['AP',16,20,78], ['AP+', 10,14,55], ['SP',32,26,90],['Total',0, 0, 0]] 
# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Type', 'R0', 'R1', 'R2']) 

# List columns
cols_to_sum=['R0', 'R1', 'R2']

# Access last row and sum columns-wise
df.loc[df.index[-1], cols_to_sum] = df[cols_to_sum].sum(axis=0)

# Create 'Sum' column summing row-wise
df['Sum']=df[cols_to_sum].sum(axis=1)

df

    Type  R0  R1   R2  Sum
0     AP  16  20   78  114
1    AP+  10  14   55   79
2     SP  32  26   90  148
3  Total  58  60  223  341

通常,最好指定列名:

import pandas as pd
# initialize list of lists 
data = [['AP',16,20,78], ['AP+', 10,14,55], ['SP',32,26,90],['Total',0, 0, 0]] 
# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Type', 'R0', 'R1', 'R2']) 

# List columns
cols_to_sum=['R0', 'R1', 'R2']

# Access last row and sum columns-wise
df.loc[df.index[-1], cols_to_sum] = df[cols_to_sum].sum(axis=0)

# Create 'Sum' column summing row-wise
df['Sum']=df[cols_to_sum].sum(axis=1)

df

    Type  R0  R1   R2  Sum
0     AP  16  20   78  114
1    AP+  10  14   55   79
2     SP  32  26   90  148
3  Total  58  60  223  341

太好了,谢谢你。因此,“cols_to_sum”列表指定要添加的列。非常好,谢谢。因此,“cols_to_sum”列表指定要添加的列。非常整洁。