python-3.x - 将不同的列值拆分为多列
问题描述
我在以下示例中有一个时间序列数据框:
Date Ticker Price
2018-01-01 AAA 100
2018-01-01 BBB 200
2018-01-01 CCC 1000
2018-01-01 DDD 3000
2018-01-02 BBB 201
2018-01-02 CCC 1001
我想获得“Ticker”列的唯一值并将唯一的代码转换为数据框列。我的数据框应该如下所示
Date AAA BBB CCC DDD
2018-01-01 100 200 1000 3000
2018-01-02 NaN 201 1001 NaN
我对 Python 有点陌生,但还没有找到绕过它的方法。任何人都可以提出一个有效的解决方案,因为我一次处理大约 1M 这样的行并且需要一个运行速度更快的解决方案。谢谢你。
解决方案
您可以使用pivot_table
:
df = pd.pivot_table(df, values = 'Price', index='Date', columns = 'Ticker').reset_index().rename_axis(None, axis=1)
数据框:
Date Ticker Price
0 2018-01-01 AAA 100
1 2018-01-01 BBB 200
2 2018-01-01 CCC 1000
3 2018-01-01 DDD 3000
4 2018-01-02 BBB 201
5 2018-01-02 CCC 1001
输出:
Date AAA BBB CCC DDD
0 2018-01-01 100.0 200.0 1000.0 3000.0
1 2018-01-02 NaN 201.0 1001.0 NaN
推荐阅读
- text - 按单词(字符)计数拆分文本文件
- xml - 如何在 Xslt 中使用这一行以及如何对列表进行排序以在使用 xlst 转换为 xhtm 时获得正确通道下的信息
- javascript - 如何更改 Phaser 3 中图像的 hitbox 形状?
- windows - 如何在 Docker-Windows 中查看文件结构?
- docker - Docker - 更新时服务器中的 Mantain 文件夹和文件
- javascript - 使用 VBA 宏从网站下载 URL,但它没有扩展名
- python - 如何将 lambda 函数连续应用于 2 个值(lambda> 缺少 1 个必需参数)?
- json - 如何在 Perl 中使用 REST API 发布 json 文件?
- javascript - 为什么 Js 将变量更改为 Nan 并弄乱其他向量
- java - 这个基本的 hello world 语句是如何出现错误的?