从两个数据帧计算新的pandas DataFrame

时间:2018-05-02 18:22:43

标签: python pandas

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

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

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

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

我是否需要创建一个2D数组并自己计算这些值,或者是否有更好的方法使用pandas?

1 个答案:

答案 0 :(得分: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