2017-03-07 71 views
1

我有一個數據框導入了包含2135行和518列的熊貓。現在我想要取前60行的平均值,並從其他行中減去這些值。到目前爲止,我用這個:從數據框中的其他行中減去60行的平均值

mean = df[1:60].mean() 

採取前60行的意思。我試圖減去它只是使用:

df[61:2135] - mean 

但這並不行。我嘗試了更多的東西,但我似乎無法弄清楚。也許這是數據框的形狀,因爲mean具有形狀(517,),而df [61:2135]具有形狀(2072,518)。

+0

後的原始數據和C ö,我可以運行重現您的問題,我的答案表明,這應該工作 – EdChum

+0

這裏是一個鏈接到我使用的文件:http://www.filedropper.com/csvdata –

+0

你的代碼在哪裏? – EdChum

回答

0

你的數據看起來畸形,最後一列有尾隨半冒號...;;;您需要更換這些並投退浮動:

In [44]: 
df[517] = df[517].str.replace(';;;','').astype(float) 
df.info() 

<class 'pandas.core.frame.DataFrame'> 
RangeIndex: 2134 entries, 0 to 2133 
Columns: 518 entries, 0 to 517 
dtypes: float64(518) 
memory usage: 8.4 MB 

你試過那麼什麼將只是工作

另外你的第二個行看起來並不像一個有效的列行,所以你需要通過header=Noneread_csv

df = pd.read_csv ("csvdata.csv", sep=",",skiprows=1, header=None) 
+1

當我嘗試我寫的東西時,出現錯誤:ValueError:只能將一個大小爲1的數組轉換爲Python標量 –

相關問題