python – 堆叠和整形DataFrame(pandas)切片而不循环
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 堆叠和整形DataFrame(pandas)切片而不循环,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2303字,纯文字阅读大概需要4分钟。
内容图文
![python – 堆叠和整形DataFrame(pandas)切片而不循环](/upload/InfoBanner/zyjiaocheng/724/ee4ce5b5149e4691983f8f876abb0c47.jpg)
我有一个以下形式的DataFrame:
var1 var2 var3 day
0 -0.001284819 0.00138089 1.022781 1
1 -0.001310201 0.001377473 1.022626 1
2 -0.001330947 0.001374873 1.022477 2
3 -0.0013596 0.001430423 1.022385 2
4 -0.001361913 0.00144389 1.02228 3
5 -0.001371761 0.001440607 1.022161 3
6 -0.001393955 0.00143729 1.022017 4
7 -0.001431099 0.00143434 1.021908 4
8 -0.001466792 0.00143334 1.021749 5
9 -0.001491 0.00143159 1.021602 5
每个变量var1到var3是一个时间序列,每天记录两个样本.我正在尝试将此DataFrame转换为以下内容:
day 1 2 3 4 5
0 var1 -0.001284819 -0.001330947 -0.001361913 -0.001393955 -0.001466792
1 -0.001310201 -0.0013596 -0.001371761 -0.001431099 -0.001491
2 var2 0.00138089 0.001374873 0.00144389 0.00143729 0.00143334
3 0.001377473 0.001430423 0.001440607 0.00143434 0.00143159
4 var3 1.022781 1.022477 1.02228 1.022017 1.021749
5 1.022626 1.022385 1.022161 1.021908 1.021602
现在每列都是一天,并且在每一天内,每个变量仍然与原始时间序列中的顺序相同.
我一直试图找到一种方法来实现这种结果,使用这种旋转,堆叠和操作,以避免循环,但到目前为止,我无法管理.
任何关于如何解决这个问题的建议/提示/想法将非常感谢:)
解决方法:
它不一定是最漂亮的,但在过去我做过类似的事情
df = pd.read_csv("vd.csv", sep="\s+")
d2 = pd.melt(df, id_vars="day")
d2["sample"] = d2.groupby(["variable", "day"])["day"].rank("first")
d3 = d2.pivot_table(index=["variable", "sample"], columns="day")
这使
>>> d3
value
day 1 2 3 4 5
variable sample
var1 1 -0.001285 -0.001331 -0.001362 -0.001394 -0.001467
2 -0.001310 -0.001360 -0.001372 -0.001431 -0.001491
var2 1 0.001381 0.001375 0.001444 0.001437 0.001433
2 0.001377 0.001430 0.001441 0.001434 0.001432
var3 1 1.022781 1.022477 1.022280 1.022017 1.021749
2 1.022626 1.022385 1.022161 1.021908 1.021602
[6 rows x 5 columns]
(虽然老实说,我认为安迪的方式很流畅.我会把它留在这里,因为过去在更难的情况下,融化修改枢轴模式对我来说非常有用.)
内容总结
以上是互联网集市为您收集整理的python – 堆叠和整形DataFrame(pandas)切片而不循环全部内容,希望文章能够帮你解决python – 堆叠和整形DataFrame(pandas)切片而不循环所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。