加入数据帧 - 一个是多索引列,另一个是没有

Eya*_* S. 3 python join multi-index pandas

我正在尝试连接两个数据帧 - 一个使用multiindex列,另一个使用单个列名称.他们有类似的指数.

我收到以下警告:"UserWarning:在不同级别之间合并会产生意想不到的结果(左边3个级别,右边1个)"

例如:

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
          ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index)
df2 = pd.DataFrame(np.random.randn(3), index=['A', 'B', 'C'],columns=['w'])
df3 = df.join(df2)
Run Code Online (Sandbox Code Playgroud)

加入这两个数据帧的最佳方法是什么?

piR*_*red 5

这取决于你想要什么!您希望列df2与第一级或第二级列对齐df吗?

您必须为列添加一个级别 df2

超级cheezy与 pd.concat

df.join(pd.concat([df2], axis=1, keys=['a']))
Run Code Online (Sandbox Code Playgroud)

更好的方法

df2.columns = pd.MultiIndex.from_product([['a'], df2.columns])

df.join(df2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 你是如何创建表格图形的? (2认同)