我在这里回顾了几篇关于更好地循环数据帧的文章,但似乎不知道如何将它们应用到我的具体情况中
我有一个大约200万行的数据帧,我需要为每行计算六个统计数据,每列一个。共有3列,共18列。然而,问题是我需要使用数据帧的样本更新这些统计数据,以便每行的平均值/中值等不同
以下是我目前掌握的情况:
r = 0
for i in imputed_df.iterrows():
t = imputed_df.sample(n=10)
for (columnName) in cols:
imputed_df.loc[r,columnName + '_mean'] = t[columnName].mean()
imputed_df.loc[r,columnName + '_var'] = t[columnName].var()
imputed_df.loc[r,columnName + '_std'] = t[columnName].std()
imputed_df.loc[r,columnName + '_skew'] = t[columnName].skew()
imputed_df.loc[r,columnName + '_kurt'] = t[columnName].kurt()
imputed_df.loc[r,columnName + '_med'] = t[columnName].median()
但这已经运行了两天没有完成。我试图从原始数据帧中提取2000行的子集,甚至这个数据帧已经运行了数小时
有更好的方法吗
编辑:添加了一个它应该是什么样子的示例数据集。每个带后缀的列应具有10行子集的计算值
timestamp activityID w2 w3 w4
0 41.21 1.0 -1.34587 9.57245 2.83571
1 41.22 1.0 -1.76211 10.63590 2.59496
2 41.23 1.0 -2.45116 11.09340 2.23671
3 41.24 1.0 -2.42381 11.88590 1.77260
4 41.25 1.0 -2.31581 12.45170 1.50289
问题是,您使用不必要的循环对每个列执行操作。 我们可以用 ^{} 与^{} 和^{} 以获得正确的列名称
设置
相关问题 更多 >
编程相关推荐