熊猫:计算平均值
问题描述:
我有一个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')
答
这是一个非常奇怪的索引语法,你正在使用。更明确的方式应该是:
d_col = df.iloc[:, 14:]
轴= 0表示由行,这你似乎是正确地做采取通过柱,和轴= 1的平均值。我不确定你没有得到平均值的意思。 d_col应该包含您的原始数据和一个名为“mean”的包含结果的新列。
答
由于您不提供示例数据,请参阅以下示例代码。第一列是一些应该忽略的文本列,而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的答案是正确的。
答
这个问题在这里说谎,我保存d_col作为输出csv文件而不是mean_value。这很愚蠢,但我想这就是你如何学习拾取的东西。感谢@peidaqi和其他人为你解释。