python - 如何更改熊猫日期框列
问题描述
我有这样的熊猫日期框:
import pandas as pd
price_data=pd.read_csv('data.csv')
9 CHART_EQUITY 1585151291564 SUBS seq chart-sequence 2624
10 CHART_EQUITY 1585151291564 SUBS key symbol SPY
11 CHART_EQUITY 1585151291564 SUBS 1 chart-time 244.7099
12 CHART_EQUITY 1585151291564 SUBS 2 open-price 245.14
13 CHART_EQUITY 1585151291564 SUBS 3 high-price 244.35
14 CHART_EQUITY 1585151291564 SUBS 4 low-price 244.97
15 CHART_EQUITY 1585151291564 SUBS 5 close-price 193629.0
16 CHART_EQUITY 1585151291564 SUBS 6 volume 287
17 CHART_EQUITY 1585151291564 SUBS 7 chart-time 1585151220000
18 CHART_EQUITY 1585151291564 SUBS 8 chart-day 18346
1585151291564 是时间戳,我想使用时间戳作为索引并将数据转换为这种列格式:
timestamp open-price high-price low-price close-price volume
1585151291564 245.14 244.35 244.97 244.97
有朋友可以帮忙吗?
解决方案
对于将来,您应该确保包含一个最低限度的工作示例。试图帮助您的人无法立即运行您的代码并获得您正在使用的确切数据框。但是我尝试在下面重新创建它并使用pivot_table
, 作为@G。安德森建议,进行我认为你所要求的转变。
import pandas as pd
import numpy as np
data = np.array(
[['open-price', 1, 245.14],
['high-price', 1, 244.35],
['low-price', 1, 244.97],
['close-price', 1, 244.97],
['open-price', 2, 246.14],
['high-price', 2, 245.35],
['low-price', 2, 245.97],
['close-price', 2, 245.97]]
)
df = pd.DataFrame(data, columns=['price-label', 'timestamp', 'price'])
df['timestamp'] = df['timestamp'].astype('float')
df['price'] = df['price'].astype('float')
df
price-label timestamp price
0 open-price 1.0 245.14
1 high-price 1.0 244.35
2 low-price 1.0 244.97
3 close-price 1.0 244.97
4 open-price 2.0 246.14
5 high-price 2.0 245.35
6 low-price 2.0 245.97
7 close-price 2.0 245.97
newdf = pd.pivot_table(df, index='timestamp', columns='price-label')
newdf
price
price-label close-price high-price low-price open-price
timestamp
1.0 244.97 244.35 244.97 245.14
2.0 245.97 245.35 245.97 246.14
要摆脱列上的 MultiIndex,您可以删除第一级。
newdf = newdf.droplevel(axis=1, level=0)
newdf
price-label close-price high-price low-price open-price
timestamp
1.0 244.97 244.35 244.97 245.14
2.0 245.97 245.35 245.97 246.14
推荐阅读
- llvm - 如何创建一个新的 llvm BasicBlock 并在另一个 Block 之后插入?
- typescript - 打字稿类实现接口不尊重只读修饰符
- c# - 在 Azure 集成的 ASP.NET Core MVC 应用程序中获取访问令牌
- java - 在 Swing 应用程序中实现 Web 套接字本地服务器
- authentication - 通过单一身份验证机制对多个 Web 应用程序进行身份验证
- java - 从 Java 中读取 build.gradle 文件
- python - 如何编辑 *.dat 文件并从 python 中保存?
- html - 如何链接不同文件夹中的 CSS 和 HTML?
- opengl - GLSL 中最简单的 2D 光照
- python - pySerial 中的 readline() 有时会捕获从 Arduino 串行端口流式传输的不完整值