熊猫:计算平均值

时间:2017-02-04 07:24:00

标签: python pandas

我有一个csv数据集,我想计算所有行的平均值。平均值是从第14列的数据开始计算的。这是我到目前为止所做的,但我仍然没有得到平均值。有人可以帮我这个吗?

我也对这个Axis感到困惑。

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')

3 个答案:

答案 0 :(得分:1)

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

d_col = df.iloc[:, 14:]

axis = 0表示按行取平均值,行取轴= 1,您似乎正确地执行了此操作。我不确定你的平均值是什么意思。 d_col应包含您的原始数据和名为&#34的新列;表示"包含结果。

答案 1 :(得分:1)

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

# 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

/ edit:更改上面的答案以使用df.iloc而不是df[df.columns[...],因为后者在两列具有相同名称的情况下会出现问题。请将佩达奇的答案标记为正确答案。

答案 2 :(得分:0)

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