2017-02-04 277 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和其他人爲你解釋。