使用 Python 计算特定行的总和
Calculate sum of specific rows using Python
我需要计算数据框中特定行的总和
例如,Nombre de reboot
、Passage en mode privé
、Passage en mode public
、Nombre de Kilomètres parcourus
、Heures de roulage
、Temps 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
我需要计算数据框中特定行的总和
例如,Nombre de reboot
、Passage en mode privé
、Passage en mode public
、Nombre de Kilomètres parcourus
、Heures de roulage
、Temps 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