python - 计算 Pandas Dataframe 的整列
问题描述
以下问题:我想用熊猫计算一个特定行的长期平均值。我让它运行了,但它似乎真的很慢,我认为应该有更好的解决方案。
我有一个名为“Mean_df”的 pd.df,可能如下所示:
Index Day1 Day2 Day3 Day4
1 1 2 2 1
2 3 5 4 4
3 9 2 5 0
我想创建一个新的 DF,它获取截至今天每一行的平均值,例如,对于第 1 行,它看起来像这样:
Day1 Day2 Day3 Day4
1 1 1.5 2.66 1.5
目前,我正在使用以下代码并且它正在工作,就像提到的那样慢。
LTM = pd.DataFrame(None, index = Mean_df.index, columns = Mean_df.columns)
for row in range(LTM.shape[0]):
for col in range(LTM.shape[1]):
LTM.iloc[row,col] = Mean_df.iloc[row,0:col].mean()
如您所见,我正在遍历每一行和每一列。
我认为可能有可能在不遍历所有行的情况下计算整个列?
解决方案
按列使用DataFrame.expanding
,然后mean
:
df = df.expanding(axis=1).mean()
print (df)
Day1 Day2 Day3 Day4
1 1.0 1.5 1.666667 1.5
2 3.0 4.0 4.000000 4.0
3 9.0 5.5 5.333333 4.0
推荐阅读
- python - 通过 Python 3 的 input() 的输入被自动转换为整数
- javascript - INPUT 字段中的值不能存储在 React 的状态中
- azure - 在 azure devops 中包含引用项目的 nuget 命令
- typescript - 如何获取对象实例的类型
- python - 在 R/Python 中使用网状包时出现 NULL 问题
- amazon-s3 - 功能工具可以将功能列表直接保存到s3吗?
- python - 如何让 Python 读取文本的某些部分并让它停在我想要的地方
- android - 异步周期性 setState
- c# - C#如何使一个int变量成为一个循环,当循环循环一次时改变?
- sql - 生成 MD5SUM 以将表与自身进行比较