作者Pettitte1 (低调奢华有内涵)
看板Python
标题[问题] dataframe list中名称变栏位
时间Wed Sep 14 10:33:34 2022
目前我有一个得出的data如下
[Snapshot(ts=1663150448134000000, code='2330', exchange='TSE', open=478.5,
high=482.0, low=476.0, close=481.5, tick_type=<TickType.Sell: 'Sell'>,
change_price=-11.5, change_rate=-2.33, change_type=<ChangeType.Down: 'Down'>,
average_price=479.2, volume=1, total_volume=9175, amount=481500,
total_amount=4396651000, yesterday_volume=16507.0, buy_price=481.5,
buy_volume=160.0, sell_price=482.0, sell_volume=213, volume_ratio=0.56),
Snapshot(ts=1663150456795000000, code='2317', exchange='TSE', open=107.5,
high=108.5, low=107.0, close=108.0, tick_type=<TickType.Sell: 'Sell'>,
change_price=-2.0, change_rate=-1.82, change_type=<ChangeType.Down: 'Down'>,
average_price=107.67, volume=1, total_volume=9599, amount=108000,
total_amount=1033550000, yesterday_volume=32733.0, buy_price=108.0,
buy_volume=565.0, sell_price=108.5, sell_volume=3292, volume_ratio=0.29)]
有两个Snapshot开头的
把他dataframe後
df = pd.DataFrame(snapshots)
会得出以下结果
https://i.imgur.com/1ehIRa8.jpg
但我是想要得到以下结果
https://i.imgur.com/tNLf1iL.jpg
就是把 = 之前的变成栏位名称, = 之後的变成值
我看别人colab程式码是直接
df.ts = pd.to_datetime(df.ts)
但我在vscode上直接复制用会跑出错误
AttributeError: 'int' object has no attribute 'lower'
请问该怎麽做呢
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.247.201.78 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1663122817.A.52A.html
1F:→ lycantrope: 只有复制贴上,想都没想就上来问喔...上一篇也是 09/14 12:09
2F:→ lycantrope: 也不解释一下Snapshot是怎麽产生的 09/14 12:09
3F:→ lycantrope: 通灵就是df=pd.DataFrame(map(dict,snapshots)) 09/14 12:15
抱歉阿 这是用永丰金API使用Contracts得到的DATA就最一开始所示
大大你的通灵有用 的确这样就解决了
上一篇我已经解决了 我再去自己解答一下
感谢
※ 编辑: Pettitte1 (27.247.201.78 台湾), 09/14/2022 13:38:16