如何按行对 Pandas 数据框的值求和?
在处理Python pandas 模块时,可能需要总结一下 Dataframe 的行。以下是对 Dataframe 的行求和的示例。 Dataframe 是一种二维数据结构,采用具有行和列的表格形式。它可以通过从现有存储中加载数据集来创建,存储可以是 SQL 数据库、CSV 文件、Excel 文件,也可以来自Python列表或字典。
Pandas dataframe.sum()函数返回请求轴的值的总和。
Syntax: DataFrame.sum(axis)
Parameters:
- axis : {index (0), columns (1)}
每行的总和:
df.sum(axis=1)
示例 1:
使用 sum函数对 Dataframe 的所有行求和并将轴值设置为 1 以求和行值并将结果显示为输出。
Python3
# importing pandas module as pd
import pandas as pd
# creating a dataframe using dictionary
df = pd.DataFrame({'X':[1, 2, 3, 4, 5],
'Y':[54, 12, 57, 48, 96]})
# sum() method sums up the rows and columns of a dataframe
# axis = 1 sums up the rows
df = df.sum(axis = 1)
print(df)
Python3
# importing pandas as pd
import pandas as pd
# creating the dataframe using pandas DataFrame
df = pd.DataFrame({'X':[1, 2, 3, 4, 5],
'Y':[54, 12, 57, 48, 96],
'Z':['a', 'b', 'c', 'd', 'e']})
# df['column_name'] = df.loc[start_row_index:end_row_index,
# ['column1','column2']].sum(axis = 1)
# summing columns X and Y for row from 1 - 3
df['Sum_of_row'] = df.loc[1 : 3,['X' , 'Y']].sum(axis = 1)
print(df)
Python3
# importing pandas as pd
import pandas as pd
# creating the dataframe using pandas DataFrame
df = pd.DataFrame({'X':[1, 2, 3, 4, 5],
'Y':[54, 12, 57, 48, 96],
'Z':['a', 'b', 'c', 'd', 'e']})
# eval('expression') calculates the sum of the specified columns of that row
df = df.eval('Sum = X + Y')
print(df)
Python3
# importing pandas as pd
import pandas as pd
# creating the dataframe using pandas DataFrame
df = pd.DataFrame({'X':[1, 2, 3, 4, 5],
'Y':[54, 12, 57, 48, 96],
'Z':['a', 'b', 'c', 'd', 'e']})
# eval('expression') calculates the sum
# of the specified columns of that row
# using loc for specified rows
df = df.loc[2:4].eval('Sum = X + Y')
display(df)
输出 :
示例 2:
根据需要使用 loc函数和 sum函数对 Dataframe 的所有行或某些行求和,并将轴设置为 1 以求和行。它仅对指定的行求和,并将 NaN 值放在其余位置。
蟒蛇3
# importing pandas as pd
import pandas as pd
# creating the dataframe using pandas DataFrame
df = pd.DataFrame({'X':[1, 2, 3, 4, 5],
'Y':[54, 12, 57, 48, 96],
'Z':['a', 'b', 'c', 'd', 'e']})
# df['column_name'] = df.loc[start_row_index:end_row_index,
# ['column1','column2']].sum(axis = 1)
# summing columns X and Y for row from 1 - 3
df['Sum_of_row'] = df.loc[1 : 3,['X' , 'Y']].sum(axis = 1)
print(df)
输出 :
示例 3:
使用 eval函数对行求和,以使用指定的表达式作为参数计算行的总和。
蟒蛇3
# importing pandas as pd
import pandas as pd
# creating the dataframe using pandas DataFrame
df = pd.DataFrame({'X':[1, 2, 3, 4, 5],
'Y':[54, 12, 57, 48, 96],
'Z':['a', 'b', 'c', 'd', 'e']})
# eval('expression') calculates the sum of the specified columns of that row
df = df.eval('Sum = X + Y')
print(df)
输出 :
示例 4:
使用 eval函数对行求和以计算具有指定行的行的总和,使用 loc 和表达式计算总和作为 eval函数的参数。它只返回在 loc 中指定的行并砍掉剩余的行。
蟒蛇3
# importing pandas as pd
import pandas as pd
# creating the dataframe using pandas DataFrame
df = pd.DataFrame({'X':[1, 2, 3, 4, 5],
'Y':[54, 12, 57, 48, 96],
'Z':['a', 'b', 'c', 'd', 'e']})
# eval('expression') calculates the sum
# of the specified columns of that row
# using loc for specified rows
df = df.loc[2:4].eval('Sum = X + Y')
display(df)
输出 :