【问题标题】:panda extending a subset table熊猫扩展子集表
【发布时间】:2022-11-10 14:47:02
【问题描述】:

我想测试一些交易数学python,通过yahoo Finance,我可以检索一些数据 我想根据开盘价和收盘价添加一些计算。 我可以使用以下代码获取数据。

import numpy as np
import math
import pandas as pd
import yfinance as yf
ticker = 'EURUSD=X,BTC-USD'
data = yf.download(tickers= ticker, period = '30d', interval = '1h')
closedata = data[['Open','Close']]
closedata

这导致每个股票代码的开盘和收盘数据:

                    Open                    Close
                    BTC-USD    EURUSD=X     BTC-USD  EURUSD=X
2022-09-09 00:00:00 NaN        1.000600     NaN      1.001202
2022-09-09 01:00:00 NaN        1.001202     NaN      1.005126
2022-09-09 02:00:00 NaN        1.004823     NaN      1.005328
2022-09-09 03:00:00 NaN        1.005530     NaN      1.007151
2022-09-09 04:00:00 NaN        1.007049     NaN      1.007151
... ... ... ... ...
2022-10-20 11:00:00 19215.98   0.978474     19216.63 0.980488
2022-10-20 12:00:00 19213.79   0.980777     19222.87 0.981643
2022-10-20 12:20:00 19224.61   NaN          19224.61 NaN

我想为每个价格代码添加 3 个公式列(BTCx 和 Eurx)
要从此处获取类似于以下表头的表结构:

newtable = BTC-USD open|EuroUSD=X open|BTC-USD close|euroSD=X close|BTC-1|BTC2|BTC3|Eur1|Eur2|Eur3

如何做到这一点?
或者也许它是错误的,我在这里想得太简单了。
熊猫似乎很有能力,也许像下面这样更有条理? (延长它)

 Open      Close     Results1  results2  results3
 [tickers],[tickers],[tickers],[tickers],[tickers]

如果以上是可能的,那就更好了,但是如何添加结果列呢?

【问题讨论】:

标签: python-3.x pandas yahoo-finance


【解决方案1】:

您想要做的是展平 MultiIndex。要获得您想要的命名,由BTC-USD open|EuroUSD=X open|BTC-USD close|euroSD=X close|... 给出,您可以执行以下操作:

closedata.columns = (
    closedata.columns.get_level_values(1) + " " + closedata.columns.get_level_values(0)
)

输出:

                           BTC-USD Open  EURUSD=X Open  BTC-USD Close  
2022-09-15 23:00:00+00:00           NaN       0.999600            NaN   
2022-09-16 00:00:00+00:00           NaN       0.999001            NaN   
2022-09-16 01:00:00+00:00           NaN       1.000901            NaN   

                           EURUSD=X Close  
2022-09-15 23:00:00+00:00        0.999001  
2022-09-16 00:00:00+00:00        1.000901  
2022-09-16 01:00:00+00:00        1.000100

Pandas 还提供了一个方法MultiIndex.to_flat_index()。但是,您不能使用这种方法指定顺序。

【讨论】:

    猜你喜欢
    • 2023-02-25
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2015-12-28
    • 2018-01-07
    • 1970-01-01
    相关资源
    最近更新 更多