我有一个带有" n" 行和" m" 列的DataFrame,我想要第一行行和 m-1 列。
c1 c2 c3 . . . . . . . cm
r1
r2
r3
.
.
.
.
rn
我正在对整个第一行求和,减去与该行对应的最后一列值,然后对其求平均值。代码如下所示:
(sum(df.ix["r1",:]) - df.ix["r1",'cm'])/(len(df.columns)-1)
你会建议另一种方法来实现我的目标吗?
答案 0 :(得分:2)
我相信
之类的东西df[df.columns[:-1]].mean(axis=1)
如果你有这种扁平的数据帧结构,那么就可以解决问题。
此处,df.columns[:-1]
返回一个指向除最后一列之外的所有列的索引。
UPD 请原谅,这将给你计算所有行,你仍然需要选择你想要的那一行(第一个)
答案 1 :(得分:1)
你可以这样使用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()
答案 2 :(得分:1)
您可以iloc
使用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