python – 如何使用Pandas重新排列DataFrame?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何使用Pandas重新排列DataFrame?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2380字,纯文字阅读大概需要4分钟。
内容图文
![python – 如何使用Pandas重新排列DataFrame?](/upload/InfoBanner/zyjiaocheng/727/33c47c8d77404a6f93c53ea70fd435fa.jpg)
我有一个DataFrame:
Amount dwy bmd
Portfolio EUR GBP JPY USD EUR GBP JPY USD EUR GBP JPY USD
date
2016-05-13 100 200 300 400 -0.5 0.5 0 0.8 3.8 3 0 3
我想把它转移到这个:
date ccy amt dwy bmd
2016-05-13 EUR 100 -0.5 3.8
2016-05-13 GBP 200 0.5 3
2016-05-13 JPY 300 0 0
2016-05-13 USD 400 0.8 3
我已经尝试过各种方式的df.stack()和df.unstack以及df.T.除了把它拆开并重新组装之外还有更优化的方法吗?
解决方法:
pd.DataFrame(df.stack(“Currency”).to_records())应该做的伎俩.
以下是对步骤的解释:
1.重现您的数据框:
arrays = [['Amount', 'Amount', 'Amount', 'Amount', 'dwy', 'dwy', 'dwy', 'dwy', 'bmd', 'bmd', 'bmd', 'bmd'],
['EUR', 'GBP', 'JPY', 'USD', 'EUR', 'GBP', 'JPY', 'USD', 'EUR', 'GBP', 'JPY', 'USD']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['Portfolio', 'Currency'])
data = [100, 200, 300, 400, -0.5, 0.5, 0, 0.8, 3.8, 3, 0, 3]
df = pd.DataFrame(data).T
df.columns = index
df.index = ['2016-05-13']
这是“输入”DataFrame:
Portfolio Amount dwy bmd
Currency EUR GBP JPY USD EUR GBP JPY USD EUR GBP JPY USD
2016-05-13 100 200 300 400 -0.5 0.5 0 0.8 3.8 3 0 3
2.调用df.stack(“Currency”)将堆叠在Currency列上:
Portfolio Amount bmd dwy
Currency
2016-05-13 EUR 100 3.8 -0.5
GBP 200 3.0 0.5
JPY 300 0.0 0.0
USD 400 3.0 0.8
3.关闭但不完全.我们只需要展平Dataframe的索引.为此,我们可以调用to_records():
3. df.stack("Currency").to_records()
# Result:
# => rec.array([('2016-05-13', 'EUR', 100.0, 3.8, -0.5),
('2016-05-13', 'GBP', 200.0, 3.0, 0.5),
('2016-05-13', 'JPY', 300.0, 0.0, 0.0),
('2016-05-13', 'USD', 400.0, 3.0, 0.8)],
dtype=[('level_0', 'S10'), ('Currency', 'S3'), ('Amount', '<f8'), ('bmd', '<f8'), ('dwy', '<f8')])
4.然后我们可以使用新索引重新创建数据框:
pd.DataFrame(df.stack("Currency").to_records())
level_0 Currency Amount bmd dwy
0 2016-05-13 EUR 100 3.8 -0.5
1 2016-05-13 GBP 200 3.0 0.5
2 2016-05-13 JPY 300 0.0 0.0
3 2016-05-13 USD 400 3.0 0.8
从这里,您可以根据需要简单地重命名和重新排序列.
内容总结
以上是互联网集市为您收集整理的python – 如何使用Pandas重新排列DataFrame?全部内容,希望文章能够帮你解决python – 如何使用Pandas重新排列DataFrame?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。