2017-02-04 178 views
-1

我有一个csv数据集,我想要计算所有行的平均值平均值是从第14列的数据开始计算的。这就是我迄今为止所做的,但我仍未得到平均值。有人可以帮我弄这个吗?熊猫:计算平均值

我也对这个轴心事物感到困惑。

file = ('dataset.csv') 

df = pd.read_csv(file) 


d_col = df[df.columns[14:]] 

mean_value = d_col['mean'] = d_col.mean(axis=1, skipna=True, numeric_only=True) 

print mean_value 

d_col.to_csv('out.csv') 

回答

1

这是一个非常奇怪的索引语法,你正在使用。更明确的方式应该是:

d_col = df.iloc[:, 14:] 

轴= 0表示由行,这你似乎是正确地做采取通过柱,和轴= 1的平均值。我不确定你没有得到平均值的意思。 d_col应该包含您的原始数据和一个名为“mean”的包含结果的新列。

1

由于您不提供示例数据,请参阅以下示例代码。第一列是一些应该忽略的文本列,而DataFrame中的其他列是应该用来计算均值的那些列。

# prepare some dataset 
letters = 'abcdefghijklmnopqrstuvwxyz' 
rows = 10 
col1 = np.array(list(letters))[np.random.permutation(len(letters))[:rows]] 
df = pd.concat([pd.DataFrame(col1), pd.DataFrame(np.random.randn(rows, 10))], axis=1) 

result = df.iloc[:, 1:].mean(axis=1) 

然后结果是这样的:

0 0.693024 
1 -0.356701 
2 0.082385 
3 -0.115622 
4 -0.060414 
5 0.104119 
6 -0.435787 
7 0.023327 
8 -0.144272 
9 0.363254 
dtype: float64 

/编辑:以上更改答案使用df.iloc代替df[df.columns[...],因为后者使得问题的情况下,两列具有相同的名称。请标记peidaqi的答案是正确的。

0

这个问题在这里说谎,我保存d_col作为输出csv文件而不是mean_value。这很愚蠢,但我想这就是你如何学习拾取的东西。感谢@peidaqi和其他人为你解释。