python-3.x - 在 Python 中连接 MultiIndex 数据帧

标签 python-3.x pandas dataframe

我有 2 个 Multiindex 数据帧(dateticker 是索引)

df_usdtbtc:

                         close
date          ticker                                                     
2017-12-31    USDT_BTC   13769
2018-01-01    USDT_BTC   13351

df_ethbtc:

                         close
date          ticker                                                     
2017-12-31    USDT_ETH   736
2018-01-01    USDT_ETH   754

有没有什么方法可以合并、连接或连接这两个数据帧以得到这个数据帧:

                         close
date          ticker                                                     
2017-12-31    USDT_BTC   13769
              USDT_ETH   736
2018-01-01    USDT_BTC   13351
              USDT_ETH   754

帮助设置数据框:

df_usdtbtc = {'dates':  [dtm(2018, 1, 1),dtm(2018, 1, 2)], 'ticker': ['USDT_BTC', 'USDT_BTC'],'close':[13769,13351]}
df_usdteth = {'dates':  [dtm(2018, 1, 1),dtm(2018, 1, 2)], 'ticker': ['USDT_ETH', 'USDT_ETH'],'close':[736,754]}
df_usdtbtc = pd.DataFrame(data=df_usdtbtc)
df_usdtbtc=df_usdtbtc.set_index(['dates','ticker'])
df_usdteth = pd.DataFrame(data=df_usdteth)
df_usdteth=df_usdteth.set_index(['dates','ticker'])

最佳答案

使用concatDataFrame.appendsort_index :

df = pd.concat([df_usdtbtc, df_ethbtc]).sort_index()

或者:

df = df_usdtbtc.append(df_ethbtc).sort_index()

df = pd.concat([df_usdtbtc, df_ethbtc]).sort_index()
print (df)
                     close
date       ticker         
2017-12-31 USDT_BTC  13769
           USDT_ETH    736
2018-01-01 USDT_BTC  13351
           USDT_ETH    754

关于python-3.x - 在 Python 中连接 MultiIndex 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50238960/

相关文章:

python - 如何根据另一列添加到 Pandas 列

python - PySpark - 将 DF 列组合成命名的 StructType

python - 如何处理OSError : [Errno 36] File name too long

python - 在 tkinter 中同时运行两个脚本

python pandas - 应用于 csv 的函数不持久

Python – Pandas : Get max value of last 5 days

linux - 在 virtualenv 中使用 escpos 时的权限

python - 是否有根据类型提示检查类型的 python linter?

python - Snowflake python 表存储阶段文件

python - 处理空数据时如何知道是否删除列或行?