Python 有没有更好的方法来计算数据帧中一行的平均值?

Python 有没有更好的方法来计算数据帧中一行的平均值?,python,pandas,Python,Pandas,我有一个包含“n”行和“m”列的数据帧,我想要第一行和m-1列的平均值 c1 c2 c3 . . . . . . . cm r1 r2 r3 . . . . rn 我现在对整个第一行求和,减去对应于这一行的最后一列值,然后求平均值。代码如下所示: (sum(df.ix["r1",:]) - df.ix["r1",'cm'])/(len(df.columns)-1) 你能建议一个替代方案来实现我的目标吗?我相信 df[df.c

我有一个包含“n”行和“m”列的数据帧,我想要第一行和m-1列的平均值

              c1        c2        c3   . . . . . . . cm
r1
r2
r3
.
.
.
.
rn
我现在对整个第一行求和,减去对应于这一行的最后一列值,然后求平均值。代码如下所示:

    (sum(df.ix["r1",:]) - df.ix["r1",'cm'])/(len(df.columns)-1)

你能建议一个替代方案来实现我的目标吗?

我相信

df[df.columns[:-1]].mean(axis=1)
如果您有这种扁平的数据帧结构,就可以实现这一点

这里,
df.columns[:-1]
返回一个索引,该索引指向除最后一列之外的所有列

UPD
对不起,这将为您计算出所有行,您仍然需要选择您想要的行(第一行)

我相信类似于

df[df.columns[:-1]].mean(axis=1)
如果您有这种扁平的数据帧结构,就可以实现这一点

这里,
df.columns[:-1]
返回一个索引,该索引指向除最后一列之外的所有列

UPD
对不起,这将给您计算的所有行,您仍然需要选择您想要的行(第一行)

您可以使用
df.iloc[0][:-1].mean()
这样:

df =pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}) 
df.iloc[0][:-1].mean()

您可以像这样使用
df.iloc[0][:-1].mean()

df =pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}) 
df.iloc[0][:-1].mean()
您可以与
平均值一起使用

print (df.iloc[:, :-1].mean(axis=1))
样本:

df = pd.DataFrame({'a':[1,2,3],'b':[2,2,3],
                   'c':[2,5,6]}, index=['r1','r2','r3'])

print (df)
    a  b  c
r1  1  2  2
r2  2  2  5
r3  3  3  6

print (df.iloc[:, :-1].mean(axis=1))
r1    1.5
r2    2.0
r3    3.0
dtype: float64
您可以与
平均值一起使用

print (df.iloc[:, :-1].mean(axis=1))
样本:

df = pd.DataFrame({'a':[1,2,3],'b':[2,2,3],
                   'c':[2,5,6]}, index=['r1','r2','r3'])

print (df)
    a  b  c
r1  1  2  2
r2  2  2  5
r3  3  3  6

print (df.iloc[:, :-1].mean(axis=1))
r1    1.5
r2    2.0
r3    3.0
dtype: float64
您可以按照中的说明使用。您可以按照中的说明使用