从数据帧中的其他行中减去60行的平均值

时间:2017-03-07 14:53:27

标签: python pandas dataframe rows subtraction

我有一个导入的DataFrame,其中包含2135行和518列的pandas。现在我想取前60行的平均值并从其他行中减去这些值。到目前为止我用过这个:

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

取前60行的平均值。我试图通过使用:

来减去它
df[61:2135] - mean

但这不起作用。我已经尝试了几件事,但我似乎无法弄明白。也许它是数据帧的形状,因为mean有形状(517,)而df [61:2135]有形状(2072,518)。

1 个答案:

答案 0 :(得分: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=None传递给read_csv

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