我有一个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')
答案 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和其他人的解释。