我有一个导入的DataFrame,其中包含2135行和518列的pandas。现在我想取前60行的平均值并从其他行中减去这些值。到目前为止我用过这个:
mean = df[1:60].mean()
取前60行的平均值。我试图通过使用:
来减去它df[61:2135] - mean
但这不起作用。我已经尝试了几件事,但我似乎无法弄明白。也许它是数据帧的形状,因为mean有形状(517,)而df [61:2135]有形状(2072,518)。
答案 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)