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

标签 python pandas

我有两个数据框,我想知道从它们计算新表的 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

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

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

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

最佳答案

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

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

关于python - 从两个数据帧计算一个新的 pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141179/

相关文章:

python - Pandas read_csv,读取缺少标题元素的 csv 文件

python - 保存带有一些额外信息的 DataFrame

python - 在 Python 上将数组、字典、列表打印到文本文件中

python - 使用 Python 读取未正确关闭的 gz 文件

python - 如何正确设置 pandas.Dataframe 中特定单元格的值?

python - 如何在简单的 Kivy 应用程序中将 Pandas Dataframe 显示为表格?

python - 在特定条件下计算日期之间

Python MySQL(MariaDB) 查询 FROM_UNIXTIME 我得到计数​​而不是结果(显示行 0 - 0 )

Python Click - 即使组命令中引发异常也显示子命令的帮助

python - Pandas 申请() : how to multiply selected columns based on string match and return complete dataframe