使用 Python 计算特定行的总和

Calculate sum of specific rows using Python

我需要计算数据框中特定行的总和

例如,Nombre de rebootPassage en mode privéPassage en mode publicNombre de Kilomètres parcourusHeures de roulageTemps de trajet..

我在前三行测试了这个代码

import pandas as pd
df = pd.read_excel('mycollected_data1.xlsx')


print (df.iloc[:3, df.columns.get_indexer(['Valeurs','Valeurs.1','Valeurs.2'])])
a = df.iloc[1:3, [1,2,3]].sum()

print ('a\n', a)

这是输出:

    Valeurs Valeurs.1 Valeurs.2
0       3         5         0
1       2         1         1
2       0         0         0
a
 Valeurs      2.0
Valeurs.1    1.0
Valeurs.2    1.0
dtype: float64

期望输出:

        Valeurs Valeurs.1 Valeurs.2   sum
    0       3         5         0       8
    1       2         1         1       4
    2       0         0         0       0

如何让它计算特定给定行的总和?

IIUC,

我们可以使用 .sum,同时将轴指定为 1 以按行工作。

cols = ['Valeurs','Valeurs.1','Valeurs.2']

df['sum'] = df[cols].sum(axis=1)

print(df)

   Valeurs  Valeurs.1  Valeurs.2  sum
0        3          5          0    8
1        2          1          1    4
2        0          0          0    0

编辑,如果您需要访问某些行,您可以使用 .loc 函数,因为 @quant 具有

row_start = 0
row_end = 2
df.loc[row_start:row_end,cols].sum(axis=1)

忠告,您似乎重复了具有相似数据类型的列名,我会先清理您的列标题,然后融合您的数据框以获得表格模型。

您需要在求和函数中使用 axis=1

原版df

df
   Valeurs  Valeurs.1  Valeurs.2
0        3          5          0
1        2          1          1
2        0          0          0


cols = ['Valeurs','Valeurs.1','Valeurs.2']

df['sum'] = df.loc[0:2, cols].sum(axis=1)
df # final df

   Valeurs  Valeurs.1  Valeurs.2  sum
0        3          5          0    8
1        2          1          1    4
2        0          0          0    0