【问题标题】:Calculate a new pandas DataFrame from two dataframes从两个数据帧计算一个新的熊猫数据帧
【发布时间】:2018-05-03 02:41:57
【问题描述】:

我有两个数据框,我想知道从它们计算新表的熊猫方式是什么。我的第二个表只是第一个表的反向换位:

Exchange   Ticker     Price
0  bittrex  BCH/BTC  0.158647
2   kraken  BCH/BTC  0.158690
1     gdax  BCH/BTC  0.158760
3  binance  BCH/BTC  0.159110
                3        1        2         0
Exchange  binance     gdax   kraken   bittrex
Ticker    BCH/BTC  BCH/BTC  BCH/BTC   BCH/BTC
Price     0.15911  0.15876  0.15869  0.158647

我希望计算两个表的价格值之间的百分比差异并将此数据填充到新表中,例如https://data.bitcoinity.org/markets/arbitrage/USD

差值为 ((价格 B - 价格 A)/价格 B)*100

我需要创建一个二维数组并自己计算这些值,还是有更好的 pandas 方法?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    那么,你想要一个像这样的全对比较矩阵吗?

    i, j = df.Price.values, df.Exchange.values 
    df2 = pd.DataFrame((i - i[:, None]) / i * 100, index=j, columns=j)
    

    df2
    
              bittrex    kraken      gdax   binance
    bittrex  0.000000  0.027097  0.071177  0.290994
    kraken  -0.027104  0.000000  0.044092  0.263968
    gdax    -0.071227 -0.044111  0.000000  0.219974
    binance -0.291843 -0.264667 -0.220459  0.000000
    

    【讨论】:

    • 是的,这正是我一直在寻找的,在整整两行中,我的解决方案有 20 个 :) 非常感谢。一旦你知道如何使用它,这个库就会非常强大
    • @FreddieH 是的,对库有一个很好的理解肯定会有所帮助。不仅是 pandas,还有 numpy,它们相互补充,可以互换使用以创建一些强大的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    相关资源
    最近更新 更多