如何将Pandas数据框架的值按行相加
在使用python pandas模块时,可能需要对一个数据框架的行进行求和。下面是对Dataframe的行进行求和的例子。Dataframe是一个二维的数据结构,其形式是一个有行和列的表格。它可以通过从现有的存储空间加载数据集来创建,存储空间可以是SQL数据库、CSV文件、Excel文件,也可以是从python列表或字典中加载。
Pandas dataframe.sum()函数返回所请求的axis的数值之和。
语法: DataFrame.sum(axis)
参数:
- axis:{索引(0),列(1)}。
每行的总和:
df.sum(axis=1)
示例 1:
使用sum函数对数据框架的所有行进行求和,并将axis值设置为1,用于求和行的值,并将结果显示为输出。
# 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)
输出 :
按索引计算的所有行的总和
示例 2:
根据要求使用loc函数和sum函数对数据框架的所有行或部分行进行求和,并将axis设置为1以求得行数。它只对指定的行进行求和,并在剩下的地方放置NaN值。
# 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)
输出 :
从第1行到第3行的所有行数相加
例子3 :
使用eval函数对行进行求和,以指定的表达式为参数对行进行求和。
# 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)
输出 :
使用eval函数的行数之和
例子4 :
使用eval函数对行进行求和,使用loc对指定的行进行求和,并将计算求和的表达式作为eval函数的一个参数。它只返回在loc中指定的行,其余的都被砍掉。
# 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)
输出 :
仅使用eval对指定的行进行求和