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)
加入这两个数据帧的最佳方法是什么?
这取决于你想要什么!您希望列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)
| 归档时间: |
|
| 查看次数: |
4524 次 |
| 最近记录: |