【发布时间】:2016-09-15 19:44:23
【问题描述】:
我在下面有一个df1。我将它复制到df2 以保存df1;然后我使用df3 计算df2。
df2=df1.copy()
我想计算诸如Weight(A) = Price(A) / Sum(row_Prices) 之类的权重并将其返回到价格下方的df2,例如对于每一行我得到3 行数据,即价格、标准和权重行。我还想计算该行的标准差,我想它是类似的形式。
我试过了
df3 = df2.iloc[1:,1:].div(df2.iloc[1:,1:].sum(axis=1), axis=0)
获取权重然后打印df3,但它不起作用。
为了为每个日期获取 2 行,我尝试堆叠 .stack(),但我可能做错了。帮助!谢谢
A B C D E
2006-04-27 00:00:00
2006-04-28 00:00:00 69.62 69.62 6.518 65.09 69.62
2006-05-01 00:00:00 71.5 71.5 6.522 65.16 71.5
2006-05-02 00:00:00 72.34 72.34 6.669 66.55 72.34
2006-05-03 00:00:00 70.22 70.22 6.662 66.46 70.22
2006-05-04 00:00:00 68.32 68.32 6.758 67.48 68.32
2006-05-05 00:00:00 68 68 6.805 67.99 68
2006-05-08 00:00:00 67.88 67.88 6.768 67.56 67.88
我希望它能很好地输出:
A B C D E
2006-04-27 00:00:00
2006-04-28 00:00:00
price 69.62 69.62 6.518 65.09 69.62
weight
std
2006-05-01 00:00:00
price 71.5 71.5 6.522 65.16 71.5
weight
std
2006-05-02 00:00:00
price 72.34 72.34 6.669 66.55 72.34
weight
std
【问题讨论】:
-
是的,这只是一个错字……我确实得到了 df1 的副本。还是谢谢
-
你是怎么得到
df1的?你的索引名称:2006-04-27 23:55:00看起来很奇怪...你能发布print(df2)和print(df2.index)的输出吗 -
是的,我只是修改了索引,在顶部添加了一行带有另一组值的行,但对于我认为的问题来说,这里并不那么相关。但是,我将其更改为表格以避免混淆。谢谢
-
发布与 pandas 相关的问题时,请始终尝试使您的 DataFrame 易于重构。否则愿意回答你问题的人不得不浪费时间解析字符串,这不是很有趣。
-
@GustavoBezerra 谢谢!
标签: python pandas dataframe apply